diff --git a/src/modules/files/efuns.c b/src/modules/files/efuns.c
index b7da8ab7db1df32356cc135da9dc6f55f0613fad..27e6c980f6191555fd6947211c03319b89721309 100644
--- a/src/modules/files/efuns.c
+++ b/src/modules/files/efuns.c
@@ -190,7 +190,7 @@ void f_get_dir(INT32 args)
     int lens[FPR];
     struct dirent *tmp;
     
-    tmp = xalloc(sizeof(struct dirent) + 
+    tmp = alloca(sizeof(struct dirent) + 
 #ifdef HAVE_SOLARIS_READDIR_R
 		 pathconf(path, _PC_NAME_MAX)
 #else