             }
         }
         else if state != .Stopped && state != .Paused {
-            if reachability.isReachable() {
+            if reachability.isReachable() || (currentItem?.soundURLs[currentQuality ?? defaultQuality]?.fileURL ?? false) {
                 retryOrPlayNext()
                 connectionLossDate = nil
                 stateWhenConnectionLost = nil

        if let currentItemIndexInQueue = currentItemIndexInQueue where hasNext() {
            //The background task will end when the player will have enough data to play
            beginBackgroundTask()
            pause()

            let newIndex = currentItemIndexInQueue + 1
            if newIndex < enqueuedItems?.count {

            else {
                connectionLossDate = NSDate()
                stateWhenConnectionLost = state
            }
        }
    }
