From bcd770e01761db0c6ab6127a70859886a1952fb7 Mon Sep 17 00:00:00 2001
From: Anthony Minessale <anthm@freeswitch.org>
Date: Fri, 31 May 2013 14:45:47 -0500
Subject: [PATCH] FS-5488 --resolve

---
 src/mod/applications/mod_fifo/mod_fifo.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/mod/applications/mod_fifo/mod_fifo.c b/src/mod/applications/mod_fifo/mod_fifo.c
index 8dd8f17f6d..ffa1ec8903 100644
--- a/src/mod/applications/mod_fifo/mod_fifo.c
+++ b/src/mod/applications/mod_fifo/mod_fifo.c
@@ -1854,8 +1854,6 @@ static void *SWITCH_THREAD_FUNC node_thread_run(switch_thread_t *thread, void *o
 			node = node->next;
 
 			if (this_node->ready == 0) {
-				switch_core_hash_delete(globals.fifo_hash, this_node->name);
-
 				for (x = 0; x < MAX_PRI; x++) {
 					while (fifo_queue_pop(this_node->fifo_list[x], &pop, 2) == SWITCH_STATUS_SUCCESS) {
 						const char *caller_uuid = switch_event_get_header(pop, "unique-id");
@@ -3293,7 +3291,9 @@ SWITCH_STANDARD_APP(fifo_function)
 			continue;
 		}
 		switch_thread_rwlock_unlock(node->rwlock);
-		if (node->ready == 1 && do_destroy) {
+		
+		if (node->ready == 1 && do_destroy && node_caller_count(node) == 0 && node->consumer_count == 0) {
+			switch_core_hash_delete(globals.fifo_hash, node->name);
 			node->ready = 0;
 		}
 	}