diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 610932bc7b69b730a3bde0e6a89114c550d2656c..0692364e8cb8eebe43ccda4dae43ebc584a6fb8b 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -2201,11 +2201,11 @@ void event_thread(void* arg)
 
 			if(check_semaphores) {
 				// See if any packets have come in
-				for(j=0;j<101;j++) {
-					SAFEPRINTF4(str,"%s%s.q%c%c",sbbs->cfg.data_dir,sbbs->cfg.qhub[i]->id
-						,j>10 ? ((j-1)/10)+'0' : 'w'
-						,j ? ((j-1)%10)+'0' : 'k');
-					if(fexistcase(str) && flength(str)>0) {	/* silently ignore 0-byte QWK packets */
+				SAFEPRINTF2(str,"%s%s.q??",sbbs->cfg.data_dir,sbbs->cfg.qhub[i]->id);
+				glob(str,GLOB_NOSORT,NULL,&g);
+				for(i=0;i<(int)g.gl_pathc;i++) {
+					SAFECOPY(str,g.gl_pathv[i]);
+					if(flength(str)>0) {	/* silently ignore 0-byte QWK packets */
 						eprintf(LOG_DEBUG,"Inbound QWK Packet detected: %s", str);
 						delfiles(sbbs->cfg.temp_dir,ALLFILES);
 						sbbs->online=ON_LOCAL;
@@ -2225,6 +2225,7 @@ void event_thread(void* arg)
 						remove(str);
 					} 
 				}
+				globfree(&g);
 			}
 
 			/* Qnet call out based on time */