     override func viewWillAppear() {
         // cache our list before editing
         playCache = playlists
-
-        // overlay in history using NSDictionaryControllerKeyValuePair Protocol setKey
-        historyCache = playlistArrayController.newObject() as NSDictionaryControllerKeyValuePair
-        historyCache!.key = k.hist
-        historyCache!.value = appDelegate.histories
-        playlistArrayController.addObject(historyCache!)
+        
+        // add existing history entry if any
+        if historyCache == nil && appDelegate.histories.count > 0 {
+            playlists[UserSettings.Histories.value] = nil
+            
+            // overlay in history using NSDictionaryControllerKeyValuePair Protocol setKey
+            historyCache = playlistArrayController.newObject() as NSDictionaryControllerKeyValuePair
+            historyCache!.key = UserSettings.Histories.value
+            historyCache!.value = appDelegate.histories
+            playlistArrayController.addObject(historyCache!)
+        }
+        else
+        if historyCache != nil
+        {
+            historyCache!.value = appDelegate.histories
+        }
         
         self.playlistSplitView.setPosition(120, ofDividerAt: 0)
     }

            }
            
            for itemURL in items {
                if (itemURL as AnyObject).isFileReferenceURL() {
                    let fileURL : URL? = (itemURL as AnyObject).filePathURL

                    // Capture playlist name from origin folder of 1st item

                self.playitemTableView.scrollRowToVisible(list.count - 1)
            }
        } else {
            let item = playlistArrayController.newObject()
            let list = Array <PlayItem>()

            let temp = NSString(format:"%p",list) as String
            let name = "play#" + String(temp.characters.suffix(3))
            item.key = name
            item.value = list
            
            playlistArrayController.addObject(item)

            DispatchQueue.main.async {
