diff --git a/Library/Homebrew/brew.rb b/Library/Homebrew/brew.rb
index f7ca49a6ef9e49dd72329e42333285dfd46d2a8f..a80ca67e5cf94d7369347138cb6a273c5fcd0e9a 100644
--- a/Library/Homebrew/brew.rb
+++ b/Library/Homebrew/brew.rb
@@ -8,6 +8,12 @@ if RUBY_X < 2 || (RUBY_X == 2 && RUBY_Y < 3)
   raise "Homebrew must be run under Ruby 2.3! You're running #{RUBY_VERSION}."
 end
 
+# Load Bundler first of all if it's needed to avoid Gem version conflicts.
+if ENV["HOMEBREW_INSTALL_BUNDLER_GEMS_FIRST"]
+  require_relative "utils/gems"
+  Homebrew.install_bundler_gems!
+end
+
 # Also define here so we can rescue regardless of location.
 class MissingEnvironmentVariables < RuntimeError; end
 
diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh
index 0a73e3b7b66352e7af3e56dc1f4a918b5cead546..2cd1677a0e1eeace99f7aec3d9f17df3417ef464 100644
--- a/Library/Homebrew/brew.sh
+++ b/Library/Homebrew/brew.sh
@@ -309,6 +309,11 @@ then
   esac
 fi
 
+if [[ "$HOMEBREW_COMMAND" = "audit" || "$HOMEBREW_COMMAND" = "style" ]]
+then
+  export HOMEBREW_INSTALL_BUNDLER_GEMS_FIRST="1"
+fi
+
 # Set HOMEBREW_DEV_CMD_RUN for users who have run a development command.
 # This makes them behave like HOMEBREW_DEVELOPERs for brew update.
 if [[ -z "$HOMEBREW_DEVELOPER" ]]