diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index ade483dc703dad714a58edb54c9c624e82cf66bf..a51a5119af3ddca2bdba328eab4d4970b95cee3a 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -9,7 +9,8 @@ static Expr primImport(EvalState & state, const ATermVector & args)
 {
     ATMatcher m;
     string path;
-    if (!(atMatch(m, args[0]) >> "Path" >> path))
+    Expr fn = evalExpr(state, args[0]);
+    if (!(atMatch(m, fn) >> "Path" >> path))
         throw Error("path expected");
     return evalFile(state, path);
 }