Index: apps/app_queue.c =================================================================== --- apps/app_queue.c (revision 408068) +++ apps/app_queue.c (working copy) @@ -6247,20 +6247,20 @@ if ((mem = interface_exists(q, interface))) { if (mem->paused == paused) { ast_debug(1, "%spausing already-%spaused queue member %s:%s\n", (paused ? "" : "un"), (paused ? "" : "un"), q->name, interface); - } + } else { + failed = 0; + if (mem->realtime) { + failed = update_realtime_member_field(mem, q->name, "paused", paused ? "1" : "0"); + } - failed = 0; - if (mem->realtime) { - failed = update_realtime_member_field(mem, q->name, "paused", paused ? "1" : "0"); + if (failed) { + ast_log(LOG_WARNING, "Failed %spausing realtime queue member %s:%s\n", (paused ? "" : "un"), q->name, interface); + ao2_ref(mem, -1); + ao2_unlock(q); + queue_t_unref(q, "Done with iterator"); + continue; + } } - - if (failed) { - ast_log(LOG_WARNING, "Failed %spausing realtime queue member %s:%s\n", (paused ? "" : "un"), q->name, interface); - ao2_ref(mem, -1); - ao2_unlock(q); - queue_t_unref(q, "Done with iterator"); - continue; - } found++; mem->paused = paused;