diff --git a/src/xpdoor/objects.mk b/src/xpdoor/objects.mk
index 85cccfe6a937ac079abf0521a13d02b328c81ef3..909b711c30e436c261f0f162d7eef768057e5b9d 100644
--- a/src/xpdoor/objects.mk
+++ b/src/xpdoor/objects.mk
@@ -1,5 +1,6 @@
 OBJS = \
                         $(MTOBJODIR)$(DIRSEP)comio$(OFILE) \
+                        $(MTOBJODIR)$(DIRSEP)dropfiles$(OFILE) \
                         $(MTOBJODIR)$(DIRSEP)telnet$(OFILE) \
                         $(MTOBJODIR)$(DIRSEP)xpdoor$(OFILE)
 
diff --git a/src/xpdoor/xpdoor.c b/src/xpdoor/xpdoor.c
index a868add6f72379939c6f458918e058ae5ad6cdf6..b48edf03ba50938f9e05d3a3cbad5d15d6cde238 100644
--- a/src/xpdoor/xpdoor.c
+++ b/src/xpdoor/xpdoor.c
@@ -57,12 +57,12 @@ static int xpd_ansi_readbyte_cb(void)
 	return(-2);
 }
 
-static int dummy_writebyte_cb(unsigned char ch)
+static int dummy_writebyte_cb(const unsigned char ch)
 {
 	return(ch);
 }
 
-static int xpd_ansi_writebyte_cb(unsigned char ch)
+static int xpd_ansi_writebyte_cb(const unsigned char ch)
 {
 	switch(xpd_info.io_type) {
 		case XPD_IO_STDIO:
@@ -116,7 +116,7 @@ static int xpd_ansi_initio_cb(void)
 	return(0);
 }
 
-static int xpd_ansi_writestr_cb(unsigned char *str, size_t len)
+static int xpd_ansi_writestr_cb(const unsigned char *str, size_t len)
 {
 	int i;
 
@@ -128,7 +128,7 @@ static int xpd_ansi_writestr_cb(unsigned char *str, size_t len)
 		case XPD_IO_SOCKET:
 		case XPD_IO_TELNET:
 			for(i=0; i<len; i++) {
-				if(xpd_ansi_writebyte_cb((unsigned char)str[i])<0)
+				if(xpd_ansi_writebyte_cb(str[i])<0)
 					return(-2);
 			}
 	}
@@ -166,7 +166,7 @@ void xpd_parse_cmdline(int argc, char **argv)
 	}
 }
 
-int xpd_exit()
+void xpd_exit()
 {
 	if(xpd_info.doorway_mode)
 		ansi_ciolib_setdoorway(0);
@@ -190,9 +190,10 @@ int xpd_init()
 	}
 	gettextinfo(&ti);
 	cterm_init(ti.screenheight, ti.screenwidth, 1, 1, 0, NULL, CTERM_EMULATION_ANSI_BBS);
+	return 0;
 }
 
-int xpd_doorway(int enable)
+void xpd_doorway(int enable)
 {
 	xpd_info.doorway_mode=enable;
 	ansi_ciolib_setdoorway(enable);
@@ -228,4 +229,5 @@ int xpd_rwrite(const char *data, int data_len)
 
 	/* Re-enable ciolib output */
 	ciolib_ansi_writebyte_cb=xpd_ansi_writebyte_cb;
+	return 0;
 }
diff --git a/src/xpdoor/xpdoor.h b/src/xpdoor/xpdoor.h
index 291f124ae84e1b9d62e918ad6dbd8b1d08a9ca17..fd4804972ff00ffa0717f3ed8dde244b41c23f26 100644
--- a/src/xpdoor/xpdoor.h
+++ b/src/xpdoor/xpdoor.h
@@ -114,12 +114,12 @@ void xpd_parse_cmdline(int argc, char **argv);
 /*
  * Initialize (turns on Doorway mode)
  */
-int xpd_init();
+int xpd_init(void);
 
 /*
  * Exit (turns off Doorway mode)
  */
-int xpd_exit(void);
+void xpd_exit(void);
 
 /*
  * Parse dropfile