diff --git a/arch/nt32/psxglue.h b/arch/nt32/psxglue.h
index 1bf6ed3..b882fbc 100644
--- a/arch/nt32/psxglue.h
+++ b/arch/nt32/psxglue.h
@@ -22,7 +22,7 @@ struct __psx_vtbl {
 	void	(*do_global_dtors_fn)	();
 	int	(*start_main)		(void *, int, char **, int (*)(void *, int, char **));
 	void	(*convert_thread)	(void);
-	void	(*unmapself)		(void *, void *);
+	void	(*unmapself)		(void *, size_t);
 	ssize_t	(*log_output)		(void *, ssize_t);
 };
 
diff --git a/arch/nt64/psxglue.h b/arch/nt64/psxglue.h
index 1bf6ed3..b882fbc 100644
--- a/arch/nt64/psxglue.h
+++ b/arch/nt64/psxglue.h
@@ -22,7 +22,7 @@ struct __psx_vtbl {
 	void	(*do_global_dtors_fn)	();
 	int	(*start_main)		(void *, int, char **, int (*)(void *, int, char **));
 	void	(*convert_thread)	(void);
-	void	(*unmapself)		(void *, void *);
+	void	(*unmapself)		(void *, size_t);
 	ssize_t	(*log_output)		(void *, ssize_t);
 };
 
diff --git a/src/arch/nt32/syscall_disp.c b/src/arch/nt32/syscall_disp.c
index 9ea5966..31baddb 100644
--- a/src/arch/nt32/syscall_disp.c
+++ b/src/arch/nt32/syscall_disp.c
@@ -8,7 +8,7 @@ extern struct __psx_vtbl * __psx_vtbl;
 
 void __unmapself(void * base, size_t size)
 {
-	__psx_vtbl->unmapself(base,(void *)size);
+	__psx_vtbl->unmapself(base,size);
 }
 
 uintptr_t __syscall_disp(long n,
diff --git a/src/arch/nt64/syscall_disp.c b/src/arch/nt64/syscall_disp.c
index 9ea5966..31baddb 100644
--- a/src/arch/nt64/syscall_disp.c
+++ b/src/arch/nt64/syscall_disp.c
@@ -8,7 +8,7 @@ extern struct __psx_vtbl * __psx_vtbl;
 
 void __unmapself(void * base, size_t size)
 {
-	__psx_vtbl->unmapself(base,(void *)size);
+	__psx_vtbl->unmapself(base,size);
 }
 
 uintptr_t __syscall_disp(long n,