diff --git a/lib/spack/spack/modules.py b/lib/spack/spack/modules.py
index f6a11c92e3118b372ab4491cb911cf91de4b9626..d797af287d37eaf242e7662430eee8277136fae1 100644
--- a/lib/spack/spack/modules.py
+++ b/lib/spack/spack/modules.py
@@ -163,9 +163,14 @@ def write(self):
         # package-specific modifications
         spack_env = EnvironmentModifications()
         for item in self.pkg.extendees:
-            package = self.spec[item].package
-            package.setup_dependent_package(self.pkg.module, self.spec)
-            package.setup_dependent_environment(spack_env, env, self.spec)
+            try:
+                package = self.spec[item].package
+                package.setup_dependent_package(self.pkg.module, self.spec)
+                package.setup_dependent_environment(spack_env, env, self.spec)
+            except:
+                # The extends was conditional, so it doesn't count here
+                # eg: extends('python', when='+python')
+                pass
 
         # Package-specific environment modifications
         self.spec.package.setup_environment(spack_env, env)