diff --git a/src/sbbs3/str.cpp b/src/sbbs3/str.cpp
index b9f5f71f22e9124bf6ff344f97babffc3680f022..1147bddc36f9c8e533fb586e0a07e50c82a88a82 100644
--- a/src/sbbs3/str.cpp
+++ b/src/sbbs3/str.cpp
@@ -76,6 +76,7 @@ void sbbs_t::userlist(long mode)
 		}
 		if(sort) {
 			if((line[j]=(char *)malloc(128))==0) {
+				closeuserdat(userfile);
 				errormsg(WHERE,ERR_ALLOC,nulstr,83);
 				for(i=0;i<j;i++)
 					free(line[i]);