diff --git a/resources/lib/PlayUtils.py b/resources/lib/PlayUtils.py
index c87c1077..8267d33c 100644
--- a/resources/lib/PlayUtils.py
+++ b/resources/lib/PlayUtils.py
@@ -22,6 +22,7 @@ class PlayUtils():
     
     addonName = clientInfo.getAddonName()
     addon = xbmcaddon.Addon()
+    WINDOW = xbmcgui.Window(10000)
 
     audioPref = addon.getSetting('Audiopref')
     subsPref = addon.getSetting('Subspref')
@@ -36,7 +37,7 @@ class PlayUtils():
 
     def getPlayUrl(self, server, id, result):
 
-        WINDOW = xbmcgui.Window(10000)
+        WINDOW = self.WINDOW
         username = WINDOW.getProperty('currUser')
         server = WINDOW.getProperty('server%s' % username)
 
@@ -54,11 +55,15 @@ class PlayUtils():
                 self.logMsg("File is direct streaming.", 1)
                 WINDOW.setProperty("%splaymethod" % playurl, "DirectStream")
 
-        else:# Try transcoding
+        elif self.isTranscoding(result):
+            # Try transcoding
             playurl = self.transcoding(result, server, id)
             if playurl:
                 self.logMsg("File is transcoding.", 1)
                 WINDOW.setProperty("%splaymethod" % playurl, "Transcode")
+        else:
+            # Error
+            return False
 
         return playurl.encode('utf-8')
 
@@ -86,16 +91,19 @@ class PlayUtils():
             if self.fileExists(result):
                 return True
             else:
-                self.logMsg("Can't direct play: Unable to locate the content.", 1)
+                self.logMsg("Unable to direct play. Verify the following path is accessible by the device: %s. You might also need to add SMB credentials in the addon settings." % result[u'MediaSources'][0][u'Path'])
                 if dialog:
                     # Let user know that direct play failed
-                    resp = xbmcgui.Dialog().select('Warning: Unable to direct play.', ['Play from HTTP', 'Play from HTTP and remember next time.'])
+                    dialog = xbmcgui.Dialog()
+                    resp = dialog.select('Warning: Unable to direct play.', ['Play from HTTP', 'Play from HTTP and remember next time.'])
                     if resp == 1:
                         # Remember next time
                         self.addon.setSetting('playFromStream', "true")
-                    else:
+                    elif resp < 0:
                         # User decided not to proceed.
-                        self.logMsg("Unable to direct play. Verify the following path is accessible by the device: %s. You might also need to add SMB credentials in the addon settings." % result[u'MediaSources'][0][u'Path'])
+                        self.logMsg("User cancelled HTTP selection dialog.", 1)
+                        self.WINDOW.setProperty("playurlFalse", "true")
+                        
                 return False
 
 
diff --git a/resources/lib/PlaybackUtils.py b/resources/lib/PlaybackUtils.py
index 6a96ab75..7940f39f 100644
--- a/resources/lib/PlaybackUtils.py
+++ b/resources/lib/PlaybackUtils.py
@@ -31,6 +31,8 @@ class PlaybackUtils():
     language = addon.getLocalizedString
     logLevel = 0
     downloadUtils = DownloadUtils()
+
+    WINDOW.clearProperty('playurlFalse')
     
     def __init__(self, *args):
         pass    
@@ -90,8 +92,8 @@ class PlaybackUtils():
             return self.AddToPlaylist(itemsToPlay)
 
         playurl = PlayUtils().getPlayUrl(server, id, result)
-        if playurl == False:
-            #xbmcgui.Dialog().ok('Warning', 'Failed to launch playback.')
+        if playurl == False or WINDOW.getProperty('playurlFalse') == "true":
+            WINDOW.clearProperty('playurlFalse')
             xbmc.log("Failed to retrieve the playback path/url.")
             return