             return
         }
 
-        debug("Go to previous item")
+        // TODO:
+        // Seek to 0 if time is more than 5 seconds, else go to previous
+        // Check the repeat
+        // Check the shuffle settings
+        if self.currentIndex != 0 {
+            self.stop()
+            self.play(self.currentIndex - 1)
+        }
     }
 
     func isPlayable() -> Bool {

    public func stop() {
        if (self.player != nil) {
            self.currentState = .Waiting
            self.currentPlayerItem = nil
            self.player?.delete(self)
            debug("Stopping current item")
            self.delegate?.twistStatusChanged()
        }

        if !isPlayable() {
            return
        }
        
        // TODO:
        // Check the repeat
        // Check the shuffle settings
        if self.currentIndex < self.dataSource!.twistNumberOfItems() {
            self.stop()
            self.play(self.currentIndex + 1)
        }
    }

    public func previous() {
