                     cell.imageView!.setIcon(best, withPlaceholder: FaviconFetcher.defaultFavicon)
                 }
             }
+        } else if let domain = site.domain {
+            addFaviconlessDomain(domain, forIndexPath: indexPath)
         }
     }
 

        case .Insert:
            if let indexPath = newIndexPath {
                let obj = anObject as! History
                if let domain = obj.domain?.url where obj.domain?.favicon == nil {
                    domainToIndexPath[domain] = indexPath
                    obj.domain?.addObserver(self, forKeyPath: "favicon", options: .New, context: &kvoContext)
                }
                tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
            }

    private var kvoContext: UInt8 = 1
    var frc: NSFetchedResultsController? = nil


    // This list is used for observing when the domain.favicon is updated.
    // I called these faviconless-domains for clarity.
    private var faviconlessDomainToIndexPaths = [String: [NSIndexPath]]()
    private func addFaviconlessDomain(domain: Domain, forIndexPath: NSIndexPath) {
        guard let url = domain.url else { return }

        if faviconlessDomainToIndexPaths[url] == nil {
            faviconlessDomainToIndexPaths[url] = [NSIndexPath]()
            domain.addObserver(self, forKeyPath: "favicon", options: .New, context: &kvoContext)
        }
        faviconlessDomainToIndexPaths[url]!.append(forIndexPath)
    }

    init() {
        super.init(nibName: nil, bundle: nil)
