 
                 case "currentItem.status":
                     if let item = player.currentItem where item.status == .Failed {
-                        state = .Failed(item.error)
-                        nextOrStop()
+                        state = .Failed(.FoundationError(item.error))
                     }
 
                 case "currentItem.loadedTimeRanges":

        return true
    case (.WaitingForConnection, .WaitingForConnection):
        return true
    case (.Failed(let e1), .Failed(let e2)):
        return e1 == e2
    default:
        return false
    }

            }
        }

        state = .Failed(.MaximumRetryCountHit)
    }

    private func nextOrStop() {
