diff --git a/src/sbbs3/prntfile.cpp b/src/sbbs3/prntfile.cpp
index fc4632dce697fd3102aceac5f2375e7b5f440981..4f94366d3604074c3c98d6b43111898e30abc36d 100644
--- a/src/sbbs3/prntfile.cpp
+++ b/src/sbbs3/prntfile.cpp
@@ -373,9 +373,12 @@ bool sbbs_t::random_menu(const char *name, int mode, JSObject* obj)
 	globfree(&g);
 	strListDedupe(&names, /* case_sensitive: */true);
 	bool result = false;
-	size_t i = sbbs_random(strListCount(names));
-	if(menu_exists(names[i], NULL, path)) {
-		result = menu(names[i], mode, obj);
+	size_t count = strListCount(names);
+	if(count > 0) {
+		size_t i = sbbs_random(count);
+		if(menu_exists(names[i], NULL, path)) {
+			result = menu(names[i], mode, obj);
+		}
 	}
 	strListFree(&names);
 	return result;