diff --git a/src/sbbs3/pktdump.c b/src/sbbs3/pktdump.c
index f6bffc7af804b830cb14d6177630b3c8f063a22a..60b074c33e4fcb8f14790628d0809bb57c9e5680 100644
--- a/src/sbbs3/pktdump.c
+++ b/src/sbbs3/pktdump.c
@@ -73,7 +73,7 @@ const char* fmsgattr_str(uint16_t attr)
 
 int pktdump(FILE* fp, const char* fname, FILE* good, FILE* bad)
 {
-	int			ch,lastch=0;
+	int			ch,lastch;
 	char		buf[128];
 	char		to[FIDO_NAME_LEN];
 	char		from[FIDO_NAME_LEN];
@@ -240,6 +240,7 @@ int pktdump(FILE* fp, const char* fname, FILE* good, FILE* bad)
 		fprintf(bodyfp,"\n-start of message text-\n");
 
 		size_t count = 0;
+		lastch = 0;
 		while((ch=fgetc(fp))!=EOF && ch!=0) {
 			count++;
 			if((count == 1 || lastch == '\r') && ch == 1) {
@@ -251,9 +252,8 @@ int pktdump(FILE* fp, const char* fname, FILE* good, FILE* bad)
 					break;
 				continue;
 			}
-			if(lastch=='\r' && ch!='\n')
-				fputc('\n',bodyfp);
-			fputc(lastch=ch,bodyfp);
+			fputc(ch == '\r' ? '\n' : ch, bodyfp);
+			lastch = ch;
 			if(good != NULL)
 				fputc(ch, good);
 		}