diff --git a/cli/__init__.py b/cli/__init__.py
index e244811..5d986c0 100644
--- a/cli/__init__.py
+++ b/cli/__init__.py
@@ -61,7 +61,7 @@
             'nova', action, flags, params, admin, fail_ok)
 
     def nova_manage(self, action, flags='', params='', fail_ok=False,
-                    merge_stderr=True):
+                    merge_stderr=False):
         """Executes nova-manage command for the given action."""
         return self.cmd(
             'nova-manage', action, flags, params, fail_ok, merge_stderr)
@@ -83,8 +83,7 @@
         return self.cmd(cmd, action, flags, params, fail_ok)
 
     def cmd(self, cmd, action, flags='', params='', fail_ok=False,
-            merge_stderr=True):
-        #TODO(jogo): make merge_stderr default to False.
+            merge_stderr=False):
         """Executes specified command for the given action."""
         cmd = ' '.join([CONF.cli.cli_dir + cmd,
                         flags, action, params])
@@ -94,7 +93,8 @@
             if merge_stderr:
                 result = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
             else:
-                result = subprocess.check_output(cmd)
+                devnull = open('/dev/null', 'w')
+                result = subprocess.check_output(cmd, stderr=devnull)
         except subprocess.CalledProcessError, e:
             LOG.error("command output:\n%s" % e.output)
             raise
diff --git a/cli/simple_read_only/test_compute_manage.py b/cli/simple_read_only/test_compute_manage.py
index 0fa84bd..650ef10 100644
--- a/cli/simple_read_only/test_compute_manage.py
+++ b/cli/simple_read_only/test_compute_manage.py
@@ -51,9 +51,10 @@
 
     def test_version_flag(self):
         # Bug 1159957: nova-manage --version writes to stderr
-        self.assertNotEqual("", self.nova_manage('', '--version'))
+        self.assertNotEqual("", self.nova_manage('', '--version',
+                                                 merge_stderr=True))
         self.assertEqual(self.nova_manage('version'),
-                         self.nova_manage('', '--version'))
+                         self.nova_manage('', '--version', merge_stderr=True))
 
     def test_debug_flag(self):
         self.assertNotEqual("", self.nova_manage('instance_type list',
@@ -69,9 +70,8 @@
 
     def test_flavor_list(self):
         self.assertNotEqual("", self.nova_manage('flavor list'))
-        self.assertEqual(self.nova_manage('instance_type list',
-                                          merge_stderr=False),
-                         self.nova_manage('flavor list', merge_stderr=False))
+        self.assertEqual(self.nova_manage('instance_type list'),
+                         self.nova_manage('flavor list'))
 
     def test_db_archive_deleted_rows(self):
         # make sure command doesn't error out
