diff --git a/Library/Homebrew/cmd/pull.rb b/Library/Homebrew/cmd/pull.rb
index 06b7639bb7941e4352dcb94f2ad064ded9d87549..33868d8f77569054612dad79aca1a9ed4c331a8d 100644
--- a/Library/Homebrew/cmd/pull.rb
+++ b/Library/Homebrew/cmd/pull.rb
@@ -56,10 +56,12 @@ module Homebrew
       elsif (api_match = arg.match HOMEBREW_PULL_API_REGEX)
         _, user, repo, issue = *api_match
         url = "https://github.com/#{user}/#{repo}/pull/#{issue}"
-        tap = Tap.fetch(user, repo) if repo.start_with?("homebrew-") || ARGV.include?("--legacy")
+        tap = Tap.fetch(user, repo) if repo.start_with?("homebrew-")
+        tap = CoreTap.instance if ARGV.include?("--legacy")
       elsif (url_match = arg.match HOMEBREW_PULL_OR_COMMIT_URL_REGEX)
         url, user, repo, issue = *url_match
-        tap = Tap.fetch(user, repo) if repo.start_with?("homebrew-") || ARGV.include?("--legacy")
+        tap = Tap.fetch(user, repo) if repo.start_with?("homebrew-")
+        tap = CoreTap.instance if ARGV.include?("--legacy")
       else
         odie "Not a GitHub pull request or commit: #{arg}"
       end
@@ -68,10 +70,6 @@ module Homebrew
         odie "No pull request detected!"
       end
 
-      if ARGV.include?("--legacy") && !tap.core_tap?
-        odie "--legacy can only be used for CoreTap!"
-      end
-
       if tap
         tap.install unless tap.installed?
         Dir.chdir tap.path