     }
 
     func tabManager(tabManager: TabManager, didRemoveTab tab: Browser) {
-        let removedIndex = tabDataSource.removeTab(tab)
+        var removedIndex = -1
+        for i in 0..<tabDataSource.tabList.count() {
+            let tabRef = tabDataSource.tabList.at(i)
+            if tabRef == nil || getApp().tabManager.tabs.displayedTabsForCurrentPrivateMode.indexOf(tabRef!) == nil {
+                removedIndex = i
+                break
+            }
+        }
+
+        tabDataSource.updateData()
+        if (removedIndex < 0) {
+            return
+        }
+
         self.collectionView.deleteItemsAtIndexPaths([NSIndexPath(forItem: removedIndex, inSection: 0)])
 
         // Workaround: On iOS 8.* devices, cells don't get reloaded during the deletion but after the

                activityView.stopAnimating()
            }
        }
#else
        // If we are exiting private mode and we have the close private tabs option selected, make sure
        // we clear out all of the private tabs

        tabCell.animator.delegate = cellDelegate
        tabCell.delegate = cellDelegate

        guard let tab = tabList.at(indexPath.item) else {
            assert(false)
            return tabCell
        }
        tabCell.style = tab.isPrivate ? .Dark : .Light
        tabCell.titleText.text = tab.displayTitle

