diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js
index 727e21f1754b0842080d8f3e29060baad445df66..ee9df3a311fc72954e064a2cbc56b716d116314a 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() {
@@ -457,7 +458,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;
     }
 
@@ -481,7 +482,7 @@ var ctrlTab = {
   },
 
   open: function ctrlTab_open() {
-    if (this.isOpen) {
+    if (this.isOpen || !this.tabCount) {
       return;
     }
 
@@ -759,7 +760,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();
   },
