diff --git a/apps/app_queue.c b/apps/app_queue.c
index 27a46625f0994b4112e6275f6e289a99ee5d7076..6ddd72169edd832850ea6566fa6045e0f444b154 100755
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -761,7 +761,9 @@ static struct ast_call_queue *reload_queue_rt(const char *queuename, struct ast_
 				return q;
 			}
 		}
-	}
+	} else if (!member_config)
+		/* Not found in the list, and it's not realtime ... */
+		return NULL;
 
 	/* Check if queue is defined in realtime. */
 	if (!queue_vars) {
@@ -872,12 +874,12 @@ static int join_queue(char *queuename, struct queue_ent *qe, enum queue_result *
 	   Thus we might see an empty member list when a queue is
 	   deleted. In practise, this is unlikely to cause a problem. */
 	queue_vars = ast_load_realtime("queues", "name", queuename, NULL);
-	if(queue_vars)
+	if (queue_vars) {
 		member_config = ast_load_realtime_multientry("queue_members", "interface LIKE", "%", "queue_name", queuename, NULL);
-	
-	if (!member_config) {
-		ast_log(LOG_ERROR, "no queue_members defined in your config (extconfig.conf).\n");
-		return res;
+		if (!member_config) {
+			ast_log(LOG_ERROR, "no queue_members defined in your config (extconfig.conf).\n");
+			return res;
+		}
 	}
 
 	ast_mutex_lock(&qlock);