 	}
 
 	@IBAction func openInBrowser(_ sender: Any?) {
-		guard let feed = singleSelectedFeed, let homePageURL = feed.homePageURL else {
+		guard let feed = singleSelectedWebFeed, let homePageURL = feed.homePageURL else {
 			return
 		}
 		Browser.open(homePageURL)
 	}
 
 	@IBAction func gotoToday(_ sender: Any?) {
+		ensureFeedIsAvailableToSelect(SmartFeedsController.shared.todayFeed)
 		outlineView.revealAndSelectRepresentedObject(SmartFeedsController.shared.todayFeed, treeController)
 		focus()
 	}
 
 	@IBAction func gotoAllUnread(_ sender: Any?) {
+		ensureFeedIsAvailableToSelect(SmartFeedsController.shared.unreadFeed)
 		outlineView.revealAndSelectRepresentedObject(SmartFeedsController.shared.unreadFeed, treeController)
 		focus()
 	}
 
 	@IBAction func gotoStarred(_ sender: Any?) {
+		ensureFeedIsAvailableToSelect(SmartFeedsController.shared.starredFeed)
 		outlineView.revealAndSelectRepresentedObject(SmartFeedsController.shared.starredFeed, treeController)
 		focus()
 	}

	}

	// MARK: - API

	func queueRebuildTreeAndRestoreSelection() {
		rebuildTreeAndRestoreSelectionQueue.add(self, #selector(rebuildTreeAndRestoreSelection))

			configureUnreadCountForCellsForRepresentedObjects([representedObject as AnyObject])
		}

		if let feed = representedObject as? Feed, isReadFiltered, feed.unreadCount > 0 {
			addTreeControllerToFilterExceptions()
			queueRebuildTreeAndRestoreSelection()
		}
	}
