          */
         private func withSyncInputs<T>(label: EngineIdentifier? = nil, function: (SyncDelegate, Prefs, Ready) -> Deferred<Result<T>>) -> Deferred<Result<T>>? {
             if let account = profile.account {
+                if !beginSyncing() {
+                    log.info("Not syncing \(label); already syncing something.")
+                    return deferResult(AlreadySyncingError())
+                }
+
                 if let label = label {
                     log.info("Syncing \(label).")
                 }


        private var syncTimer: NSTimer? = nil

        init(profile: BrowserProfile) {
            self.profile = profile
        }

        }
    }
}

class AlreadySyncingError: ErrorType {
    var description: String {
        return "Already syncing."
    }
}
