diff --git a/apps/app_queue.c b/apps/app_queue.c
index 00b44a36394c4efc9190d46a2e0b27130d46dcb2..bc1b5d4b61ece68332491c8dbbcd3c3cabdc6905 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -1621,7 +1621,7 @@ posout:
 	res = play_file(qe->chan, qe->parent->sound_thanks);
 
 playout:
-	if (res > 0 && !valid_exit(qe, res))
+	if ((res > 0 && !valid_exit(qe, res)) || res < 0)
 		res = 0;
 
 	/* Set our last_pos indicators */
@@ -2065,7 +2065,7 @@ static int say_periodic_announcement(struct queue_ent *qe, int ringing)
 	/* play the announcement */
 	res = play_file(qe->chan, qe->parent->sound_periodicannounce[qe->last_periodic_announce_sound]);
 
-	if (res > 0 && !valid_exit(qe, res))
+	if ((res > 0 && !valid_exit(qe, res)) || res < 0)
 		res = 0;
 
 	/* Resume Music on Hold if the caller is going to stay in the queue */