diff --git a/apps/app_queue.c b/apps/app_queue.c
index 38401607b82bc62dfcc34e654c26df6dba031394..6265308b72a241e69e7d4278492e329cbc693dd4 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -2687,8 +2687,19 @@ static void update_realtime_members(struct call_queue *q)
 	struct ao2_iterator mem_iter;
 
 	if (!(member_config = ast_load_realtime_multientry("queue_members", "interface LIKE", "%", "queue_name", q->name , SENTINEL))) {
-		/*This queue doesn't have realtime members*/
+		/* This queue doesn't have realtime members. If the queue still has any realtime
+		 * members in memory, they need to be removed.
+		 */
+		ao2_lock(q);
+		mem_iter = ao2_iterator_init(q->members, 0);
+		while ((m = ao2_iterator_next(&mem_iter))) {
+			if (m->realtime) {
+				ao2_unlink(q->members, m);
+			}
+			ao2_ref(m, -1);
+		}
 		ast_debug(3, "Queue %s has no realtime members defined. No need for update\n", q->name);
+		ao2_unlock(q);
 		return;
 	}