diff --git a/runcommands/config.py b/runcommands/config.py
index <HASH>..<HASH> 100644
--- a/runcommands/config.py
+++ b/runcommands/config.py
@@ -118,6 +118,9 @@ class RawConfig(OrderedDict):
             del self[name]
         return value
 
+    def update(self, *args, **kwargs):
+        self.__do_update(args, kwargs, dotted=False)
+
     items = lambda self: _OrderedDictItemsView(self)
     values = lambda self: _OrderedDictValuesView(self)
 
@@ -281,6 +284,10 @@ class RawConfig(OrderedDict):
         obj[last_segment] = value
 
     def _update_dotted(self, *args, **kwargs):
+        self.__do_update(args, kwargs)
+
+    def __do_update(self, args, kwargs, dotted=True):
+        setter = self._set_dotted if dotted else self.__setitem__
         if args:
             items, *rest = args
             if rest:
@@ -288,10 +295,10 @@ class RawConfig(OrderedDict):
             if isinstance(items, Mapping):
                 items = items.items()
             for name, value in items:
-                self._set_dotted(name, value)
+                setter(name, value)
         if kwargs:
             for name, value in kwargs.items():
-                self._set_dotted(name, value)
+                setter(name, value)
 
     def _iter_dotted(self, root=''):
         for k in super().__iter__():
Add RawConfig.update()

This is needed for the same the overridden `get` and `pop` methods are
needed: to ensure RawConfig's __getitem__ is used when updating.