diff --git a/shelly.cabal b/shelly.cabal
--- a/shelly.cabal
+++ b/shelly.cabal
@@ -1,6 +1,6 @@
 Name:       shelly
 
-Version:     1.6.1.1
+Version:     1.6.1.2
 Synopsis:    shell-like (systems) programming in Haskell
 
 Description: Shelly provides convenient systems programming in Haskell,
diff --git a/src/Shelly.hs b/src/Shelly.hs
--- a/src/Shelly.hs
+++ b/src/Shelly.hs
@@ -1062,16 +1062,23 @@
 -- | the same as 'run', but return @()@ instead of the stdout content
 -- stdout will be read and discarded line-by-line
 run_ :: FilePath -> [Text] -> Sh ()
-run_ exe args =
-  -- same a runFoldLines except Inherit Stdout
-  runHandles exe args [OutHandle Inherit] $ \inH _ errH -> do
+run_ exe args = do
     state <- get
-    errVar <- liftIO $ do
-      hClose inH -- setStdin was taken care of before the process even ran
-      (putHandleIntoMVar mempty (|>) errH (sPutStderr state) (sPrintStderr state))
-    errs <- liftIO $ lineSeqToText `fmap` wait errVar
-    modify $ \state' -> state' { sStderr = errs }
-    return ()
+    if sPrintStdout state
+      then runWithColor_
+      else runFoldLines () (\_ _ -> ()) exe args
+  where
+    -- same a runFoldLines except Inherit Stdout
+    -- That allows color to show up
+    runWithColor_ =
+        runHandles exe args [OutHandle Inherit] $ \inH _ errH -> do
+          state <- get
+          errVar <- liftIO $ do
+            hClose inH -- setStdin was taken care of before the process even ran
+            (putHandleIntoMVar mempty (|>) errH (sPutStderr state) (sPrintStderr state))
+          errs <- liftIO $ lineSeqToText `fmap` wait errVar
+          modify $ \state' -> state' { sStderr = errs }
+          return ()
 
 liftIO_ :: IO a -> Sh ()
 liftIO_ = void . liftIO
