diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index 5973e07..c1b1c69 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -532,30 +532,32 @@
     a context manager."""
 
     def __init__(self):
-        self._environ = os.environ
-        self._unset = set()
-        self._reset = dict()
+        self._changed = {}
 
     def set(self, envvar, value):
-        if envvar not in self._environ:
-            self._unset.add(envvar)
-        else:
-            self._reset[envvar] = self._environ[envvar]
-        self._environ[envvar] = value
+        # Remember the initial value on the first access
+        if envvar not in self._changed:
+            self._changed[envvar] = os.environ.get(envvar)
+        os.environ[envvar] = value
 
     def unset(self, envvar):
-        if envvar in self._environ:
-            self._reset[envvar] = self._environ[envvar]
-            del self._environ[envvar]
+        # Remember the initial value on the first access
+        if envvar not in self._changed:
+            self._changed[envvar] = os.environ.get(envvar)
+        if envvar in os.environ:
+            del os.environ[envvar]
 
     def __enter__(self):
         return self
 
     def __exit__(self, *ignore_exc):
-        for envvar, value in self._reset.iteritems():
-            self._environ[envvar] = value
-        for unset in self._unset:
-            del self._environ[unset]
+        for (k, v) in self._changed.items():
+            if v is None:
+                if k in os.environ:
+                    del os.environ[k]
+            else:
+                os.environ[k] = v
+
 
 class TransientResource(object):
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 472c7e6..28ddebb 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -875,6 +875,10 @@
 
 - Issue #5083: New 'gui' resource for regrtest.
 
+- Issue #5837: Certain sequences of calls to set() and unset() for
+  support.EnvironmentVarGuard objects restored the environment variables
+  incorrectly on __exit__.
+
 
 What's New in Python 2.6 final
 ==============================
