diff --git a/client/cros/constants.py b/client/cros/constants.py
index e58a0fe..14f52af 100644
--- a/client/cros/constants.py
+++ b/client/cros/constants.py
@@ -60,6 +60,8 @@
 MOCK_OWNER_KEY = 'mock_owner_private.key'
 MOCK_OWNER_POLICY = 'mock_owner.policy'
 
+NETWORK_MANAGER = 'flimflam'
+
 ISSUE_AUTH_TOKEN_URL = '/accounts/IssueAuthToken'
 
 OWNER_KEY_FILE = WHITELIST_DIR + '/owner.key'
diff --git a/client/cros/cros_ui_test.py b/client/cros/cros_ui_test.py
index d50f970..41b6e35 100644
--- a/client/cros/cros_ui_test.py
+++ b/client/cros/cros_ui_test.py
@@ -44,7 +44,6 @@
     crash_blacklist = []
 
     def __init__(self, job, bindir, outputdir):
-        self._dns = {}  # for saving/restoring dns entries
         test.test.__init__(self, job, bindir, outputdir)
 
 
@@ -109,12 +108,6 @@
             logging.debug("Considering " + interface)
             for path in properties['IPConfigs']:
                 ipconfig = self._flim.GetObjectInterface('IPConfig', path)
-
-                servers = ipconfig.GetProperties().get('NameServers', None)
-                if servers != None:
-                    self._dns[path] = ','.join(servers)
-                    logging.debug("Stored %s for %s" % (self._dns[path],
-                                                        interface))
                 ipconfig.SetProperty('NameServers', '127.0.0.1')
                 logging.debug("Using local DNS for " + interface)
 
@@ -128,18 +121,7 @@
         """Clear the custom DNS setting for all devices and force them to use
         DHCP to pull the network's real settings again.
         """
-        for device in self._flim.GetObjectList('Device'):
-            properties = device.GetProperties()
-            interface = properties['Interface']
-            logging.debug("Considering " + interface)
-            for path in properties['IPConfigs']:
-                if path in self._dns:
-                    ipconfig = self._flim.GetObjectInterface('IPConfig', path)
-                    ipconfig.SetProperty('NameServers', self._dns[path])
-                    logging.debug("Reverted DNS for " + interface)
-                else:
-                    logging.debug("No stored DNS for " + interface)
-
+        utils.system('restart %s' % constants.NETWORK_MANAGER);
         utils.poll_for_condition(
             lambda: self.__attempt_resolve('www.google.com.',
                                            '127.0.0.1',
