diff --git a/Library/Homebrew/dev-cmd/tap-new.rb b/Library/Homebrew/dev-cmd/tap-new.rb
index 1ff92d0c7cf2271af4370a7a62bd0aef89b2524f..2e75d055155a76e490ac841dd5af7632b3582590 100644
--- a/Library/Homebrew/dev-cmd/tap-new.rb
+++ b/Library/Homebrew/dev-cmd/tap-new.rb
@@ -22,7 +22,10 @@ module Homebrew
   def tap_new
     tap_new_args.parse
 
+    tap_name = args.named.first
     tap = Tap.fetch(args.named.first)
+    raise "Invalid tap name '#{tap_name}'" unless tap.path.to_s.match?(HOMEBREW_TAP_PATH_REGEX)
+
     titleized_user = tap.user.dup
     titleized_repo = tap.repo.dup
     titleized_user[0] = titleized_user[0].upcase
diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb
index cf2f2851a5e3bc282a60168c3faef3ea70fba5ee..9894b4b47b102ca5267dbdc80c8f27115dd6b906 100644
--- a/Library/Homebrew/tap.rb
+++ b/Library/Homebrew/tap.rb
@@ -34,10 +34,7 @@ class Tap
     return CoreTap.instance if ["Homebrew", "Linuxbrew"].include?(user) && ["core", "homebrew"].include?(repo)
 
     cache_key = "#{user}/#{repo}".downcase
-    tap = cache.fetch(cache_key) { |key| cache[key] = Tap.new(user, repo) }
-    raise "Invalid tap name '#{args.join("/")}'" unless tap.path.to_s.match?(HOMEBREW_TAP_PATH_REGEX)
-
-    tap
+    cache.fetch(cache_key) { |key| cache[key] = Tap.new(user, repo) }
   end
 
   def self.from_path(path)