diff --git a/apps/app_queue.c b/apps/app_queue.c
index 098cd4e09969a50c898db4fbe42f40722b3dd53f..ae475530bc53977950f69d752c13bde7cd922d87 100755
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -718,7 +718,7 @@ static int queue_exec(struct ast_channel *chan, void *data)
 			}
 		}
 		/* Don't allow return code > 0 */
-		if (res > 0)
+		if (res > 0 && res != AST_PBX_KEEPALIVE)
 			res = 0;	
 		ast_moh_stop(chan);
 		leave_queue(&qe);