diff --git a/Library/Homebrew/.simplecov b/Library/Homebrew/.simplecov
index 2ed96ecf48c9128d297666f7ef3f8cffbec377bd..1b1f52138d61274cff18b838d761463277d44633 100755
--- a/Library/Homebrew/.simplecov
+++ b/Library/Homebrew/.simplecov
@@ -3,6 +3,8 @@
 
 require "English"
 
+SimpleCov.enable_for_subprocesses true
+
 SimpleCov.start do
   coverage_dir File.expand_path("../test/coverage", File.realpath(__FILE__))
   root File.expand_path("..", File.realpath(__FILE__))
@@ -12,9 +14,21 @@ SimpleCov.start do
   # tests to be dropped. This causes random fluctuations in test coverage.
   merge_timeout 86400
 
+  at_fork do |pid|
+    # This needs a unique name so it won't be ovewritten
+    command_name "#{SimpleCov.command_name} (#{pid})"
+
+    # be quiet, the parent process will be in charge of output and checking coverage totals
+    print_error_status = false
+  end
+
   if ENV["HOMEBREW_INTEGRATION_TEST"]
+    # This needs a unique name so it won't be ovewritten
     command_name "#{ENV["HOMEBREW_INTEGRATION_TEST"]} (#{$PROCESS_ID})"
 
+    # be quiet, the parent process will be in charge of output and checking coverage totals
+    print_error_status = false
+
     at_exit do
       exit_code = $ERROR_INFO.nil? ? 0 : $ERROR_INFO.status
       $stdout.reopen("/dev/null")
diff --git a/Library/Homebrew/Gemfile.lock b/Library/Homebrew/Gemfile.lock
index 527212cc751d05ec08be47767b40175721e793de..408f620de6248158fcdeab24e40ef733e06a45a9 100644
--- a/Library/Homebrew/Gemfile.lock
+++ b/Library/Homebrew/Gemfile.lock
@@ -116,7 +116,7 @@ GEM
       rubocop (>= 0.87.0)
     ruby-macho (2.2.0)
     ruby-progressbar (1.10.1)
-    simplecov (0.18.5)
+    simplecov (0.19.0)
       docile (~> 1.1)
       simplecov-html (~> 0.11)
     simplecov-html (0.12.2)