diff --git a/lib/spack/spack/packages.py b/lib/spack/spack/packages.py
index 7ef8135c1a9cb22cfee188f5971b053c300b37f7..3c81863c113fd96c7996a7b2a76c3dce85ff0cc9 100644
--- a/lib/spack/spack/packages.py
+++ b/lib/spack/spack/packages.py
@@ -119,8 +119,15 @@ def extensions_for(self, extendee_spec):
 
     @_autospec
     def installed_extensions_for(self, extendee_spec):
-        return [s.package for s in self.installed_package_specs()
-                if s.package.extends(extendee_spec)]
+        for s in self.installed_package_specs():
+            try:
+                if s.package.extends(extendee_spec):
+                    yield s.package
+            except UnknownPackageError, e:
+                # Skip packages we know nothing about
+                continue
+                # TODO: add some conditional way to do this instead of
+                # catching exceptions.
 
 
     def dirname_for_package_name(self, pkg_name):