         case playlistTableView:
             Swift.print("We are in playlistTableView")
             for selectedPlaylist in (playlistArrayController.selectedObjects.first as? [NSDictionaryControllerKeyValuePair])! {
-                let list: Array<PlayItem> = ((selectedPlaylist.value as! Array).sorted(by: { (lhs, rhs) -> Bool in
+                let list: Array<PlayItem> = (selectedPlaylist.value as! Array).sorted(by: { (lhs, rhs) -> Bool in
                     return lhs.rank < rhs.rank
-                })).suffix(throttle)
+                })
+                
+                //  Do not exceed program / user specified throttle
+                if list.count > throttle {
+                    let message = String(format: "Limiting playlist's %ld items to throttle.", list.count)
+                    let infoMsg = String(format: "User defaults: %@ = %ld",
+                                         UserSettings.playlistThrottle.keyPath,
+                                         throttle)
+                    appDelegate.userAlertMessage(message, info: infoMsg)
+                }
                 
                 //  Try to restore item at its last known location
-                print("play \(selectedPlaylist) \(list.count)")
-                for (i,item) in list.enumerated() {
-                    do {
-                        _ = try Document.init(withPlayitem: item)
-                        print(String(format: "%3d %3d %@", i, item.rank, item.name))
-                    } catch let error {
-                        NSApp.presentError(error)
+                for (i,item) in (list.enumerated()).suffix(throttle) {
+                    if appDelegate.doOpenFile(fileURL: item.link) && !newWindows {
+                        UserSettings.createNewWindows.value = true
                     }
+                    print(String(format: "%3d %3d %@", i, item.rank, item.name))
                 }
             }
             break

    var webViewController: WebViewController? = nil
    
    @IBAction func playPlaylist(_ sender: AnyObject) {
        //  Quietly, do not exceed program / user specified throttle
        let throttle = UserSettings.playlistThrottle.value


                NSApp.abortModal()
            }
        }
        
        switch whoAmI {
        case playitemTableView:
            Swift.print("We are in playitemTableView")
            for selectedPlayItem in (playitemArrayController.selectedObjects as! [PlayItem]).suffix(throttle) {
                if appDelegate.doOpenFile(fileURL: selectedPlayItem.link) && !newWindows {
                    UserSettings.createNewWindows.value = true
                }
            }
            break
