diff --git a/res/res_stasis_playback.c b/res/res_stasis_playback.c
index 4a7538237749e8543c19d28dac19e4b19205f8a1..7665d5f664dd98292ef7374d65a23d01d44d2343 100644
--- a/res/res_stasis_playback.c
+++ b/res/res_stasis_playback.c
@@ -287,6 +287,7 @@ static void play_on_channel(struct stasis_app_playback *playback,
 {
 	int res;
 	long offsetms;
+	size_t index;
 
 	/* Even though these local variables look fairly pointless, they avoid
 	 * having a bunch of NULL's passed directly into
@@ -305,7 +306,8 @@ static void play_on_channel(struct stasis_app_playback *playback,
 
 	offsetms = playback->offsetms;
 
-	for (; playback->media_index < AST_VECTOR_SIZE(&playback->medias); playback->media_index++) {
+	for (index = 0; index < AST_VECTOR_SIZE(&playback->medias); index++) {
+		playback->media_index = index;
 
 		/* Set the current media to play */
 		ast_string_field_set(playback, media, AST_VECTOR_GET(&playback->medias, playback->media_index));