diff --git a/src/memline.c b/src/memline.c
index 823666e..705bc4b 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -2027,7 +2027,9 @@
 }
 #endif
 
-#if (defined(UNIX) || defined(VMS)) && (defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG))
+#if (defined(UNIX) || defined(VMS) || defined(MSWIN)) \
+	&& (defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG))
+# define HAVE_PROCESS_STILL_RUNNING
 static int process_still_running;
 #endif
 
@@ -2160,10 +2162,10 @@
 		    msg_puts(_("\n        process ID: "));
 		    msg_outnum(char_to_long(b0.b0_pid));
 #if defined(UNIX) || defined(MSWIN)
-		    if (mch_process_running((pid_t)char_to_long(b0.b0_pid)))
+		    if (mch_process_running(char_to_long(b0.b0_pid)))
 		    {
 			msg_puts(_(" (STILL RUNNING)"));
-# if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+# ifdef HAVE_PROCESS_STILL_RUNNING
 			process_still_running = TRUE;
 # endif
 		    }
@@ -2203,7 +2205,7 @@
     int		    fd;
     struct block0   b0;
     int		    ret = TRUE;
-#ifdef UNIX
+#if defined(UNIX) || defined(MSWIN)
     long	    pid;
 #endif
 
@@ -2232,7 +2234,7 @@
 #if defined(UNIX) || defined(MSWIN)
     // process must known and not be running
     pid = char_to_long(b0.b0_pid);
-    if (pid == 0L || mch_process_running((pid_t)pid))
+    if (pid == 0L || mch_process_running(pid))
 	ret = FALSE;
 #endif
 
@@ -4825,7 +4827,7 @@
 		    }
 #endif
 
-#if (defined(UNIX) || defined(VMS)) && (defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG))
+#ifdef HAVE_PROCESS_STILL_RUNNING
 		    process_still_running = FALSE;
 #endif
 		    // It's safe to delete the swap file if all these are true:
@@ -4893,13 +4895,13 @@
 				    name == NULL
 					?  (char_u *)_("Swap file already exists!")
 					: name,
-# if defined(UNIX) || defined(VMS)
+# ifdef HAVE_PROCESS_STILL_RUNNING
 				    process_still_running
 					? (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Quit\n&Abort") :
 # endif
 					(char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Delete it\n&Quit\n&Abort"), 1, NULL, FALSE);
 
-# if defined(UNIX) || defined(VMS)
+# ifdef HAVE_PROCESS_STILL_RUNNING
 			if (process_still_running && choice >= 4)
 			    choice++;	/* Skip missing "Delete it" button */
 # endif
diff --git a/src/os_unix.c b/src/os_unix.c
index cd3b68e..528089b 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -2397,7 +2397,7 @@
  * return TRUE if process "pid" is still running
  */
     int
-mch_process_running(pid_t pid)
+mch_process_running(long pid)
 {
     // EMX kill() not working correctly, it seems
     return kill(pid, 0) == 0;
diff --git a/src/os_win32.c b/src/os_win32.c
index 320431f..537af46 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -2907,7 +2907,7 @@
  * return TRUE if process "pid" is still running
  */
     int
-mch_process_running(pid_t pid)
+mch_process_running(long pid)
 {
     HANDLE  hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, 0, (DWORD)pid);
     DWORD   status = 0;
diff --git a/src/proto/os_unix.pro b/src/proto/os_unix.pro
index 4677eb0..721c07d 100644
--- a/src/proto/os_unix.pro
+++ b/src/proto/os_unix.pro
@@ -27,7 +27,7 @@
 int mch_get_uname(uid_t uid, char_u *s, int len);
 void mch_get_host_name(char_u *s, int len);
 long mch_get_pid(void);
-int mch_process_running(pid_t pid);
+int mch_process_running(long pid);
 int mch_dirname(char_u *buf, int len);
 int mch_FullName(char_u *fname, char_u *buf, int len, int force);
 int mch_isFullName(char_u *fname);
diff --git a/src/proto/os_win32.pro b/src/proto/os_win32.pro
index c825c54..f251640 100644
--- a/src/proto/os_win32.pro
+++ b/src/proto/os_win32.pro
@@ -19,7 +19,7 @@
 int mch_get_user_name(char_u *s, int len);
 void mch_get_host_name(char_u *s, int len);
 long mch_get_pid(void);
-int mch_process_running(pid_t pid);
+int mch_process_running(long pid);
 int mch_dirname(char_u *buf, int len);
 long mch_getperm(char_u *name);
 int mch_setperm(char_u *name, long perm);
diff --git a/src/version.c b/src/version.c
index 80ee7fb..40bcf89 100644
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1232,
+/**/
     1231,
 /**/
     1230,
