     func getDesktopRoots() -> Deferred<Maybe<Cursor<BookmarkNode>>> {
         if self.direction == .Buffer {
             // The buffer never includes the Places root, so we look one level deeper.
-            return self.bookmarks.getRecordsWithGUIDs(BookmarkRoots.DesktopRoots, direction: self.direction, includeIcon: false)
+            // Because this is a special-case overlay, we include Mobile Bookmarks here --
+            // that'll show bookmarks from other mobile devices.
+            return self.bookmarks.getRecordsWithGUIDs(BookmarkRoots.RootChildren, direction: self.direction, includeIcon: false)
         }
 
         // We deliberately exclude the mobile folder, because we're inverting the containment

        "FROM \(direction.valueView) WHERE guid IN \(varlist) AND NOT is_deleted"

        if !includeIcon {
            return self.db.runQuery(values, args: args, factory: BookmarkFactory.factory)
        }

        let withIcon = [


    public func modelForRoot() -> Deferred<Maybe<BookmarksModel>> {
        log.debug("Getting model for root.")
        let getFolder = self.folderForGUID(BookmarkRoots.MobileFolderGUID, title: BookmarksFolderTitleMobile)
        if self.direction == .Buffer {
            return getFolder >>== self.modelWithRoot
        }

        // Return a virtual model containing "Desktop bookmarks" prepended to the local mobile bookmarks.
        return getFolder >>== { folder in
            self.extendWithDesktopBookmarksFolder(folder, factory: self)
        }
    }

