diff --git a/Library/Homebrew/migrator.rb b/Library/Homebrew/migrator.rb
index 3eb7f833e35d33c614ba5e37eba279e5b2c6d945..a58ca2059b1063a8c2745ed757fb0293f6342f19 100644
--- a/Library/Homebrew/migrator.rb
+++ b/Library/Homebrew/migrator.rb
@@ -122,6 +122,13 @@ class Migrator
   end
 
   def from_same_taps?
+    new_tap = if old_tap
+      if migrate_tap = old_tap.tap_migrations[formula.oldname]
+        new_tap_user, new_tap_repo, = migrate_tap.split("/")
+        "#{new_tap_user}/#{new_tap_repo}"
+      end
+    end
+
     if formula.tap == old_tap
       true
     # Homebrew didn't use to update tabs while performing tap-migrations,
@@ -129,7 +136,7 @@ class Migrator
     # so we check if there is an entry about oldname migrated to tap and if
     # newname's tap is the same as tap to which oldname migrated, then we
     # can perform migrations and the taps for oldname and newname are the same.
-    elsif formula.tap && old_tap && formula.tap == old_tap.tap_migrations[formula.oldname]
+    elsif formula.tap && old_tap && formula.tap == new_tap
       fix_tabs
       true
     else
diff --git a/Library/Homebrew/missing_formula.rb b/Library/Homebrew/missing_formula.rb
index 9c1656aa23b1e31b83e09645f447bf8fb61662ae..1b584af8a11463a7f6543be3d5ab50e9d0a86e6d 100644
--- a/Library/Homebrew/missing_formula.rb
+++ b/Library/Homebrew/missing_formula.rb
@@ -105,10 +105,14 @@ module Homebrew
         message = nil
 
         Tap.each do |old_tap|
-          new_tap_name = old_tap.tap_migrations[name]
-          next unless new_tap_name
+          new_tap = old_tap.tap_migrations[name]
+          next unless new_tap
+
+          new_tap_user, new_tap_repo, = new_tap.split("/")
+          new_tap_name = "#{new_tap_user}/#{new_tap_repo}"
+
           message = <<-EOS.undent
-            It was migrated from #{old_tap} to #{new_tap_name}.
+            It was migrated from #{old_tap} to #{new_tap}.
             You can access it again by running:
               brew tap #{new_tap_name}
           EOS