diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb
index 0cf6e122e759888a3960bdca42b66e2e9d34bb15..c657074c8790d76f9d80b39c3115a17869fb0c04 100644
--- a/Library/Homebrew/keg.rb
+++ b/Library/Homebrew/keg.rb
@@ -342,13 +342,17 @@ class Keg
     end
 
     if stat.directory?
-      keg = Keg.for(src)
+      begin
+        keg = Keg.for(src)
+      rescue NotAKegError
+        puts "Won't resolve conflicts for symlink #{dst} as it doesn't resolve into the Cellar" if ARGV.verbose?
+        return
+      end
+
       dst.unlink unless mode.dry_run
       keg.link_dir(src, mode) { :mkpath }
       return true
     end
-  rescue NotAKegError
-    puts "Won't resolve conflicts for symlink #{dst} as it doesn't resolve into the Cellar" if ARGV.verbose?
   end
 
   def make_relative_symlink dst, src, mode