         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)

        }
        
        // load from cache
        if let style = self.cachedSettingDictionaries[name] {
            return style
        }
        

                }
                
                // cache style since it's already loaded
                self.propertyAccessQueue.sync {
                    self.cachedSettingDictionaries[styleName] = style
                }
            }
        }
        self.map = map
