diff --git a/src/sbbs3/listfile.cpp b/src/sbbs3/listfile.cpp
index 629dbca9bf463623a38ec760c3ca88c70145631b..3450030834a999a3a9b645d4b9b48f2da289c3da 100644
--- a/src/sbbs3/listfile.cpp
+++ b/src/sbbs3/listfile.cpp
@@ -340,10 +340,18 @@ bool sbbs_t::listfile(file_t* f, uint dirnum, const char *search, const char let
     off_t	cdt;
 	int		size_attr=clr_filecdt;
 
-	if(f->extdesc != NULL && *f->extdesc && (useron.misc&EXTDESC)) {
-		ext = f->extdesc;
-		if((useron.misc&BATCHFLAG) && lncntr+extdesclines(ext)>=rows-2 && letter!='A')
-			return false;
+	if(useron.misc & EXTDESC) {
+		if(f->extdesc != NULL && (ext = strdup(f->extdesc)) != NULL) {
+			strip_ctrl(ext, ext);
+			truncsp(ext);
+			char ch = *ext;
+			FREE_AND_NULL(ext);
+			if(ch != '\0') {
+				ext = f->extdesc;
+				if((useron.misc&BATCHFLAG) && lncntr+extdesclines(ext)>=rows-2 && letter!='A')
+					return false;
+			}
+		}
 	}
 
 	cond_newline();