         try super.restoreSetting(name: name)
         
         // update internal cache
-        self.cachedSettingDictionaries[name] = self.bundledSettingDictionary(name: name)
+        let dictionary = self.bundledSettingDictionary(name: name)
+        self.propertyAccessQueue.sync {
+            self.cachedSettingDictionaries[name] = dictionary
+        }
         
         self.updateCache { [weak self] in
             self?.notifySettingUpdate(oldName: name, newName: name)

        try super.removeSetting(name: name)
        
        // update internal cache
        self.cachedSettingDictionaries[name] = nil
        
        self.updateCache { [weak self] in
            self?.notifySettingUpdate(oldName: name, newName: BundledStyleName.none)

        if self.isEqualToBundledSetting(settingDictionary, name: name) {
            if saveURL.isReachable {
                try FileManager.default.removeItem(at: saveURL)
                self.propertyAccessQueue.sync {
                    self.cachedSettingDictionaries[name] = nil
                }
            }
        } else {
            // save file to user domain
