diff -Nur audacious-2.4.3-orig/src/audacious/playlist-new.c audacious-2.4.3/src/audacious/playlist-new.c --- audacious-2.4.3-orig/src/audacious/playlist-new.c 2011-01-12 12:07:37.000000000 +0100 +++ audacious-2.4.3/src/audacious/playlist-new.c 2011-01-28 23:28:26.557658545 +0100 @@ -1846,14 +1846,14 @@ if (entries == 0) return FALSE; - if (playlist->position != NULL && playlist->position->queued) + /* If we have a song in queue, jump to it, _then_ remove it from queue */ + if (playlist->queued != NULL) { + set_position (playlist, playlist->queued->data); + playlist->queued = g_list_remove(playlist->queued, playlist->position); playlist->position->queued = FALSE; } - - if (playlist->queued != NULL) - set_position (playlist, playlist->queued->data); else if (cfg.shuffle) { if (! shuffle_next (playlist))