diff --git a/src/sbbs3/pack_qwk.cpp b/src/sbbs3/pack_qwk.cpp
index 8bf391660dab8779ffc1e3b8f2b85e84e649355e..b002addd6a12cc64a0573f1ecf40c95d7b08fd95 100644
--- a/src/sbbs3/pack_qwk.cpp
+++ b/src/sbbs3/pack_qwk.cpp
@@ -87,8 +87,10 @@ bool sbbs_t::pack_qwk(char *packet, ulong *msgcnt, bool prepack)
 				if(!stricmp(cfg.fextr[k]->ext,useron.tmpext)
 					&& chk_ar(cfg.fextr[k]->ar,&useron,&client))
 					break;
-			if(k>=cfg.total_fextrs)
-				k=0;
+			if(k>=cfg.total_fextrs) {
+				lprintf(LOG_WARNING, "No extractable file type matching user's QWK packet type: %s", useron.tmpext);
+				return false;
+			}
 			p=cmdstr(cfg.fextr[k]->cmd,str,ALLFILES,NULL);
 			if((i=external(p,ex))==0)
 				preqwk=1; 
diff --git a/src/sbbs3/un_rep.cpp b/src/sbbs3/un_rep.cpp
index 9eac98f80adcf67d833c297a9f986fbe1255adc6..7c211c5efac5fa7d2d74ce979557afedbb7570c0 100644
--- a/src/sbbs3/un_rep.cpp
+++ b/src/sbbs3/un_rep.cpp
@@ -85,8 +85,10 @@ bool sbbs_t::unpack_rep(char* repfile)
 		for(k=0;k<cfg.total_fextrs;k++)
 			if(!stricmp(cfg.fextr[k]->ext,useron.tmpext) && chk_ar(cfg.fextr[k]->ar,&useron,&client))
 				break;
-		if(k>=cfg.total_fextrs)
-			k=0;
+		if(k>=cfg.total_fextrs) {
+			lprintf(LOG_WARNING, "No extractable file type matching user's REP packet type: %s", useron.tmpext);
+			return false;
+		}
 		ex=EX_STDOUT;
 		if(online!=ON_REMOTE)
 			ex|=EX_OFFLINE;