diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb
index ac4e8d18f7b90afdf6d34da7b4dcfbb0248f7be9..77ec98a3762149c04d17bec6c02480ae414f7243 100644
--- a/Library/Homebrew/formulary.rb
+++ b/Library/Homebrew/formulary.rb
@@ -157,7 +157,17 @@ class Formulary
     def initialize tapped_name
       @tapped_name = tapped_name
       user, repo, name = tapped_name.split("/", 3).map(&:downcase)
-      path = Pathname.new("#{HOMEBREW_LIBRARY}/Taps/#{user}-#{repo}/#{name}.rb")
+      tap = Pathname.new("#{HOMEBREW_LIBRARY}/Taps/#{user}-#{repo}")
+      path = tap.join("#{name}.rb")
+
+      if tap.directory?
+        tap.find_formula do |child|
+          if child.basename(".rb").to_s == name
+            path = tap.join(child)
+          end
+        end
+      end
+
       super name, path
     end