diff --git a/resources/lib/monitor.py b/resources/lib/monitor.py
index 014fe6d0..ab031086 100644
--- a/resources/lib/monitor.py
+++ b/resources/lib/monitor.py
@@ -79,6 +79,18 @@ class Monitor(xbmc.Monitor):
                 data = json.loads(binascii.unhexlify(data[0]))
         else:
             if method not in ('Player.OnPlay', 'VideoLibrary.OnUpdate', 'Player.OnAVChange'):
+
+                ''' We have to clear the playlist if it was stopped before it has been played completely.
+                    Otherwise the next played item will be added the previous queue.
+                '''
+                if method == "Player.OnStop":
+                    xbmc.sleep(2000) # let's wait for the player so we don't clear the canceled playlist by mistake.
+
+                    if xbmc.getCondVisibility("!Player.HasMedia"):
+
+                        xbmc.executebuiltin("Playlist.Clear")
+                        LOG.info("[ playlist ] cleared")
+
                 return
 
             data = json.loads(data)