diff --git a/Lib/os.py b/Lib/os.py
index b967978..5824609 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -445,12 +445,17 @@
             def update(self, dict=None, **kwargs):
                 if dict:
                     try:
-                        items = dict.items()
+                        keys = dict.keys()
                     except AttributeError:
                         # List of (key, value)
-                        items = dict
-                    for k, v in items:
-                        self[k] = v
+                        for k, v in dict:
+                            self[k] = v
+                    else:
+                        # got keys
+                        # cannot use items(), since mappings
+                        # may not have them.
+                        for k in keys:
+                            self[k] = dict[k]
                 if kwargs:
                     self.update(kwargs)
             def copy(self):
@@ -467,12 +472,17 @@
             def update(self,  dict=None, **kwargs):
                 if dict:
                     try:
-                        items = dict.items()
+                        keys = dict.keys()
                     except AttributeError:
                         # List of (key, value)
-                        items = dict
-                    for k, v in items:
-                        self[k] = v
+                        for k, v in dict:
+                            self[k] = v
+                    else:
+                        # got keys
+                        # cannot use items(), since mappings
+                        # may not have them.
+                        for k in keys:
+                            self[k] = dict[k]
                 if kwargs:
                     self.update(kwargs)
             try:
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index cce6926..2bc5fc0 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -227,7 +227,7 @@
         os.environ.update(self.__save)
 
     # Bug 1110478
-    def test_update(self):
+    def test_update2(self):
         if os.path.exists("/bin/sh"):
             os.environ.update(HELLO="World")
             value = os.popen("/bin/sh -c 'echo $HELLO'").read().strip()
