diff --git a/src/calc.c b/src/calc.c
index 2bef88e6c9429f613d458b8c643d78ab08767e06..61ffa96eccf4a6caec607dce8655993dce590d6b 100644
--- a/src/calc.c
+++ b/src/calc.c
@@ -403,9 +403,9 @@ void calc_process() {
   }
 
   /* something went wrong... */
-  free(path);
   if(!path[1] && strcmp(name, "."))
     free(name);
+  free(path);
   freedir(root);
 calc_fail:
   while(failed && !input_handle(0))