diff --git a/app.c b/app.c
index c3686f12f564e59f792be29eba1d765fe419c97d..2f3ac6cd7bcfb836ae069c9476e79530f39ed7e8 100755
--- a/app.c
+++ b/app.c
@@ -459,7 +459,9 @@ int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char
 				if (chan)
 					ast_stopstream(chan);
 				res = ast_waitfordigit(chan, 1000);
-				if (res == -1 || strchr(pause, res) || (stop && strchr(stop, res)))
+				if(res == 0)
+					continue;
+				else if(res == -1 || strchr(pause, res) || (stop && strchr(stop, res)))
 					break;
 			}
 			if (res == *pause) {
@@ -470,7 +472,7 @@ int ast_control_streamfile(struct ast_channel *chan, char *file, char *fwd, char
 		if (res == -1)
 			break;
 
-		if (stop != NULL && res == *stop) {
+		if (stop && strchr(stop, res)) {
 			res = 0;
 			break;
 		}
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 4c688b02312ca62bfefc016a9cc39ddd9e223e4d..f9f20fc068bc237151455269b85479d2fcabfef9 100755
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -2572,7 +2572,7 @@ static int wait_file2(struct ast_channel *chan, struct vm_state *vms, char *file
 
 static int wait_file(struct ast_channel *chan, struct vm_state *vms, char *file) 
 {
-	return ast_control_streamfile(chan, file, "#", "*", "1", "0", skipms);
+	return ast_control_streamfile(chan, file, "#", "*", "14679", "0", skipms);
 }
 
 static int play_message_datetime(struct ast_channel *chan, struct ast_vm_user *vmu, char *origtime, char *filename)