diff --git a/src/nix-env/main.cc b/src/nix-env/main.cc
index 6e4ba61e598277d3e2d0d7cb0441da9ddfc34fa9..71c22d1a51e0197d2ce4b93a4945d861d9467887 100644
--- a/src/nix-env/main.cc
+++ b/src/nix-env/main.cc
@@ -197,7 +197,9 @@ static void createUserEnv(EvalState & state, const UserEnvElems & elems,
     PathSet drvsToBuild;
     for (UserEnvElems::const_iterator i = elems.begin(); 
          i != elems.end(); ++i)
-        if (i->second.drvPath != "")
+        /* Call to `isDerivation' is for compatibility with Nix <= 0.7
+           user environments. */
+        if (i->second.drvPath != "" && isDerivation(i->second.drvPath))
             drvsToBuild.insert(i->second.drvPath);
 
     debug(format("building user environment dependencies"));