diff --git a/src/sbbs3/listfile.cpp b/src/sbbs3/listfile.cpp
index 2087dd888c983d1e0f1282314e041acf57153aca..8ce56bc6ec07463d65c15315b9f506a8699db463 100644
--- a/src/sbbs3/listfile.cpp
+++ b/src/sbbs3/listfile.cpp
@@ -440,20 +440,14 @@ bool sbbs_t::listfile(char *fname, char HUGE16 *buf, uint dirnum
 #ifdef _WIN32
  
 	if(exist && !(cfg.file_misc&FM_NO_LFN)) {
-
-		WIN32_FIND_DATA finddata;
-		HANDLE h=FindFirstFile(path,&finddata);
-
-		if(h!=INVALID_HANDLE_VALUE) {
-
-			if(stricmp(finddata.cFileName,fname) && stricmp(finddata.cFileName,str))
-				bprintf("%.*s\r\n%21s",LEN_FDESC,finddata.cFileName,"");
-
-			FindClose(h);
-		}
+		fexistcase(path);	/* Get real (long?) filename */
+		ptr=getfname(path);
+		if(stricmp(ptr,fname) && stricmp(ptr,str))
+			bprintf("%.*s\r\n%21s",LEN_FDESC,ptr,"");
 	}
 
 #endif
+
 	if(!ext[0]) {
 		if(search[0]) { /* high-light string in string */
 			strcpy(tmp,str);