diff --git a/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt b/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt
index 665b7624c7f397c31a470f8a8a8956180a5c9f24..c37f882a787e45fde140d6065a73e0fb4d0d1218 100644
--- a/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt
+++ b/app/src/main/java/com/futo/platformplayer/activities/MainActivity.kt
@@ -649,6 +649,14 @@ class MainActivity : AppCompatActivity, IWithResultLauncher {
             };
             return true;
         }
+        else if(StatePlatform.instance.hasEnabledPlaylistClient(url)) {
+            navigate(_fragMainPlaylist, url);
+            lifecycleScope.launch {
+                delay(100);
+                _fragVideoDetail.minimizeVideoDetail();
+            };
+            return true;
+        }
         return false;
     }
     fun handleContent(file: String, mime: String? = null): Boolean {
diff --git a/app/src/main/java/com/futo/platformplayer/states/StatePlatform.kt b/app/src/main/java/com/futo/platformplayer/states/StatePlatform.kt
index 5c8f77c511575e9b6d75a7cef70ff23fa864e3a4..0fac4f9a9437efb1402efac8a0023c74e2e6d9d2 100644
--- a/app/src/main/java/com/futo/platformplayer/states/StatePlatform.kt
+++ b/app/src/main/java/com/futo/platformplayer/states/StatePlatform.kt
@@ -841,6 +841,7 @@ class StatePlatform {
         return urls;
     }
 
+    fun hasEnabledPlaylistClient(url: String) : Boolean = getEnabledClients().any { it.isPlaylistUrl(url) };
     fun getPlaylistClientOrNull(url: String): IPlatformClient? = getEnabledClients().find { it.isPlaylistUrl(url) }
     fun getPlaylistClient(url: String): IPlatformClient = getEnabledClients().find { it.isPlaylistUrl(url) }
         ?: throw NoPlatformClientException("No client enabled that supports this playlist url (${url})");
diff --git a/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt b/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt
index 7d642ac4dde0b26ac849d83a8f27b9f142a24a67..0ecb4cb855db85ef999fdecdb1cff2acf90fe8e7 100644
--- a/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt
+++ b/app/src/main/java/com/futo/platformplayer/states/StatePlayer.kt
@@ -361,6 +361,12 @@ class StatePlayer {
             if (queueShuffle)  {
                 removeFromShuffledQueue(video);
             }
+            if(currentVideo != null) {
+                val newPos = _queue.indexOfFirst { it.url == currentVideo?.url };
+                if(newPos >= 0)
+                    _queuePosition = newPos;
+            }
+
         }
 
         onQueueChanged.emit(shouldSwapCurrentItem);
@@ -407,6 +413,12 @@ class StatePlayer {
             if(_queue.size == 1) {
                 return null;
             }
+            if(_queue.size <= _queuePosition && currentVideo != null) {
+                //Out of sync position
+                val newPos = _queue.indexOfFirst { it.url == currentVideo?.url }
+                if(newPos != -1)
+                    _queuePosition = newPos;
+            }
 
             val shuffledQueue = _queueShuffled;
             val queue = if (queueShuffle && shuffledQueue != null) {
@@ -421,6 +433,8 @@ class StatePlayer {
             }
             //Standard Behavior
             if(_queuePosition - 1 >= 0) {
+                if(queue.size <= _queuePosition)
+                    return null;
                 return queue[_queuePosition - 1];
             }
             //Repeat Behavior (End of queue)