diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js
index 6753641cb579032306453be3f5054d7bc7661e8c..bf21f6c14f825fbe2d322900595cd34456fe1231 100644
--- a/browser/components/tabbrowser/content/browser-ctrlTab.js
+++ b/browser/components/tabbrowser/content/browser-ctrlTab.js
@@ -252,7 +252,8 @@ var ctrlTab = {
   },
 
   get tabList() {
-    return this._recentlyUsedTabs;
+    const canShowPending = Services.prefs.getBoolPref("zen.ctrlTab.show-pending-tabs", false);
+    return this._recentlyUsedTabs.filter(tab => !tab.hasAttribute("pending") || canShowPending);
   },
 
   init: function ctrlTab_init() {
@@ -459,7 +460,7 @@ var ctrlTab = {
     // If the tab is hidden, don't add it to the list unless it's selected
     // (Normally hidden tabs would be unhidden when selected, but that doesn't
     // happen for Firefox View).
-    if (aTab.closing || (aTab.hidden && !aTab.selected)) {
+    if (aTab.closing || (aTab.hidden && !aTab.selected) || aTab.hasAttribute("zen-empty-tab")) {
       return;
     }
 
@@ -483,7 +484,7 @@ var ctrlTab = {
   },
 
   open: function ctrlTab_open() {
-    if (this.isOpen) {
+    if (this.isOpen || !this.tabCount) {
       return;
     }
 
@@ -761,7 +762,7 @@ var ctrlTab = {
   _initRecentlyUsedTabs() {
     this._recentlyUsedTabs = Array.prototype.filter.call(
       gBrowser.tabs,
-      tab => !tab.closing && !tab.hidden
+      tab => !tab.closing && !tab.hidden && !tab.hasAttribute("zen-empty-tab")
     );
     this._sortRecentlyUsedTabs();
   },
