diff --git a/src/modules/files/efuns.c b/src/modules/files/efuns.c
index 9a25d79e2ac286ce1699dee9334b1e120f44f7d3..b7da8ab7db1df32356cc135da9dc6f55f0613fad 100644
--- a/src/modules/files/efuns.c
+++ b/src/modules/files/efuns.c
@@ -278,6 +278,7 @@ void f_get_dir(INT32 args)
     closedir(dir);
     THREADS_DISALLOW();
     a=aggregate_array(sp-save_sp);
+    free((char *)dir);
   }
 #else
   dir=opendir(path);