diff --git a/src/sbbs3/sexyz.h b/src/sbbs3/sexyz.h
index 30f671301b26ef0bf269744e07cb7f46fa76562d..dc156630c0fec1d6e28929e1260afa15572521fe 100644
--- a/src/sbbs3/sexyz.h
+++ b/src/sbbs3/sexyz.h
@@ -55,4 +55,4 @@
 #define VAR_HDRS	(1<<1)	/* Use variable headers 					*/
 
 #define NOINP -1     			/* input buffer empty (incom only) */
-
+#define NOT_YMODEM -3			/* Expected block zero, got block one */
\ No newline at end of file
diff --git a/src/sbbs3/xmodem.c b/src/sbbs3/xmodem.c
index 0fcc0d2d4828e621095e655e0ef06b6eb0eae7d8..06230be562e22420be3494764e0d2de9db512b88 100644
--- a/src/sbbs3/xmodem.c
+++ b/src/sbbs3/xmodem.c
@@ -234,6 +234,8 @@ int xmodem_get_block(xmodem_t* xm, uchar* block, unsigned expected_block_num)
 		if(block_num!=(uchar)(expected_block_num&0xff)) {
 			lprintf(xm,LOG_WARNING,"Block number error (%u received, expected %u)"
 				,block_num,expected_block_num&0xff);
+			if(expected_block_num==0 && block_num==1)
+				return(NOT_YMODEM);
 			if(expected_block_num && block_num==(uchar)((expected_block_num-1)&0xff))
 				continue;	/* silently discard repeated packets (ymodem.doc 7.3.2) */
 			break;