diff --git a/src/sbbs3/zmodem.c b/src/sbbs3/zmodem.c
index cb408d71469e9119831cae2249801ec9166fc902..518fe01a6cd481b1ff15586904a19d8e32f5aa1b 100644
--- a/src/sbbs3/zmodem.c
+++ b/src/sbbs3/zmodem.c
@@ -1834,7 +1834,7 @@ int zmodem_recv_files(zmodem_t* zm, const char* download_dir, uint32_t* bytes_re
 				if(crc!=rcrc) {
 					lprintf(zm,LOG_WARNING,"Remote file has different CRC value: %08lX", rcrc);
 					if(zm->duplicate_file) {
-						if(zm->duplicate_filename(zm->cbdata))
+						if(zm->duplicate_filename(zm->cbdata, zm))
 							loop=TRUE;
 					}
 					break;
diff --git a/src/sbbs3/zmodem.h b/src/sbbs3/zmodem.h
index ec85ed45c2fc7fe15d0a74b20ca6445a204107a4..9cc2a79342b41b878dc24e67e00b5f432a70869d 100644
--- a/src/sbbs3/zmodem.h
+++ b/src/sbbs3/zmodem.h
@@ -277,7 +277,7 @@ typedef struct {
 	BOOL		(*is_connected)(void*);
 	BOOL		(*is_cancelled)(void*);
 	BOOL		(*data_waiting)(void*, unsigned timeout);
-	BOOL		(*duplicate_filename)(void*);
+	BOOL		(*duplicate_filename)(void*, zmodem_t *zm);
 
 } zmodem_t;