diff --git a/src/signal_handler.c b/src/signal_handler.c
index 40a72ed07eb014f7eff9fb7ad608a768d1ab820b..243feb493ce5f3dc9e6860a93456b4be1d8321ee 100644
--- a/src/signal_handler.c
+++ b/src/signal_handler.c
@@ -2851,7 +2851,7 @@ void f_create_process(INT32 args)
     HANDLE t3 = DO_NOT_WARN(INVALID_HANDLE_VALUE);
     STARTUPINFOEXW info;
     PROCESS_INFORMATION proc;
-    int ret,err;
+    int ret = 0, err;
     WCHAR *filename=NULL, *command_line=NULL, *dir=NULL;
     WCHAR *env=NULL;
 
@@ -2955,7 +2955,16 @@ void f_create_process(INT32 args)
     memset(&info,0,sizeof(info));
     info.StartupInfo.cb = sizeof(info);
 
+#if 0
+    /* CAUTION!!!!
+     *
+     * This function fills in several reserved fields in the
+     * StartupInfo, which in turn cause CreateProcessW() below
+     * to fail with error ERROR_INVALID_PARAMETER (87) when
+     * EXTENDED_STARTUPINFO_PRESENT is set.
+     */
     GetStartupInfoW(&info.StartupInfo);
+#endif
 
     /* Protect inherit status for handles */
     LOCK_IMUTEX(&handle_protection_mutex);