diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb
index b7af6427f3f6c1d44db019a1692ba1463003f252..511d79687a1df561c4d7166198b88d6ce5a85de0 100644
--- a/Library/Homebrew/keg.rb
+++ b/Library/Homebrew/keg.rb
@@ -385,7 +385,7 @@ class Keg
   end
 
   def installed_dependents
-    return [] unless linked?
+    return [] if !linked? && !to_formula.keg_only?
     tap = Tab.for_keg(self).source["tap"]
     Keg.all.select do |keg|
       tab = Tab.for_keg(keg)
diff --git a/Library/Homebrew/test/keg_test.rb b/Library/Homebrew/test/keg_test.rb
index 7b396b5636b3c208bfa7bf7fa849ef7671e0f4b2..de32c55e532da68f0e7c3be7ae8f8236517a08fb 100644
--- a/Library/Homebrew/test/keg_test.rb
+++ b/Library/Homebrew/test/keg_test.rb
@@ -473,4 +473,12 @@ class InstalledDependantsTests < LinkTestCase
     assert_empty @keg.installed_dependents
     assert_nil Keg.find_some_installed_dependents([@keg])
   end
+
+  def test_keg_only
+    @keg.unlink
+    Formula["foo"].class.keg_only "a good reason"
+    dependencies [{ "full_name" => "foo", "version" => "1.1" }] # different version
+    assert_equal [@dependent], @keg.installed_dependents
+    assert_equal [[@keg], ["bar 1.0"]], Keg.find_some_installed_dependents([@keg])
+  end
 end