Index: apps/playlist.c =================================================================== --- apps/playlist.c (revision 20976) +++ apps/playlist.c (working copy) @@ -1091,6 +1091,11 @@ if (playlist->amount <= 0) return -1; + if (repeat_mode == -1 + && global_settings.repeat_mode == REPEAT_ALL + && global_settings.playlist_shuffle) + repeat_mode = REPEAT_SHUFFLE; + if (repeat_mode == -1) repeat_mode = global_settings.repeat_mode; @@ -2438,7 +2443,10 @@ int index = get_next_index(playlist, steps, -1); - if (index < 0 && steps >= 0 && global_settings.repeat_mode == REPEAT_SHUFFLE) + if (index < 0 && steps >= 0 + && (global_settings.repeat_mode == REPEAT_SHUFFLE + || (global_settings.repeat_mode == REPEAT_ALL + && global_settings.playlist_shuffle))) index = get_next_index(playlist, steps, REPEAT_ALL); return (index >= 0); @@ -2525,7 +2533,9 @@ if (index < 0) { /* end of playlist... or is it */ - if (global_settings.repeat_mode == REPEAT_SHUFFLE && + if ((global_settings.repeat_mode == REPEAT_SHUFFLE + || (global_settings.repeat_mode == REPEAT_ALL + && global_settings.playlist_shuffle)) && playlist->amount > 1) { /* Repeat shuffle mode. Re-shuffle playlist and resume play */