diff --git a/src/xpdev/dirwrap.c b/src/xpdev/dirwrap.c
index 0f0b0f801c53462820901a6faf408361b7083620..fd101e0e124dbd07778a4752ea47c880f3e494ca 100644
--- a/src/xpdev/dirwrap.c
+++ b/src/xpdev/dirwrap.c
@@ -522,7 +522,7 @@ bool fexist(const char *filespec)
 {
 #if defined(_WIN32)
 
-	long	handle;
+	intptr_t handle;
 	struct _finddata_t f;
 	bool	found;
 
@@ -584,7 +584,7 @@ bool fexistcase(char *path)
 #if defined(_WIN32)
 
 	char*	fname;
-	long	handle;
+	intptr_t handle;
 	struct _finddata_t f;
 
 	if(access(path, F_OK)==-1 && !strchr(path,'*') && !strchr(path,'?'))
@@ -693,7 +693,7 @@ bool isdir(const char *filename)
 int getfattr(const char* filename)
 {
 #if defined(_WIN32)
-	long handle;
+	intptr_t handle;
 	struct _finddata_t	finddata;
 
 	if((handle=_findfirst((char*)filename,&finddata))==-1) {
diff --git a/src/xpdev/dirwrap.h b/src/xpdev/dirwrap.h
index 57be47964f0b39f29a2eb19e06f1eebe3e994399..c84c9b9e750d705cce8b770d7ef05e03866b98a0 100644
--- a/src/xpdev/dirwrap.h
+++ b/src/xpdev/dirwrap.h
@@ -137,7 +137,7 @@ extern "C" {
 	{
 		char				filespec[260];
 		struct dirent		dirent;
-		long				handle;
+		intptr_t			handle;
 		struct _finddata_t	finddata;
 		bool				end;		/* End of directory flag */
 	} DIR;