Native wcmd.exe accepts CALLs to .exe files.

diff --git a/programs/wcmd/batch.c b/programs/wcmd/batch.c
index bf6bdee..36b59ca 100644
--- a/programs/wcmd/batch.c
+++ b/programs/wcmd/batch.c
@@ -48,21 +48,31 @@
 
 HANDLE h = INVALID_HANDLE_VALUE;
 char string[MAXSTRING];
-char extension[][WCMD_BATCH_EXT_SIZE] = {".bat",".cmd"};
+char extension_batch[][WCMD_BATCH_EXT_SIZE] = {".bat",".cmd"};
+char extension_exe[WCMD_BATCH_EXT_SIZE] = ".exe";
 unsigned int  i;
 BATCH_CONTEXT *prev_context;
 
-  for(i=0; (i<(sizeof(extension)/WCMD_BATCH_EXT_SIZE)) && 
+  for(i=0; (i<(sizeof(extension_batch)/WCMD_BATCH_EXT_SIZE)) && 
            (h == INVALID_HANDLE_VALUE); i++) {
   strcpy (string, file);
   CharLower (string);
-    if (strstr (string, extension[i]) == NULL) strcat (string, extension[i]);
+    if (strstr (string, extension_batch[i]) == NULL) strcat (string, extension_batch[i]);
   h = CreateFile (string, GENERIC_READ, FILE_SHARE_READ,
                   NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
   }
   if (h == INVALID_HANDLE_VALUE) {
-    SetLastError (ERROR_FILE_NOT_FOUND);
-    WCMD_print_error ();
+    strcpy (string, file);
+    CharLower (string);
+    if (strstr (string, extension_exe) == NULL) strcat (string, extension_exe);
+    h = CreateFile (string, GENERIC_READ, FILE_SHARE_READ,
+                    NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
+    if (h != INVALID_HANDLE_VALUE) {
+      WCMD_run_program (command);
+    } else {
+      SetLastError (ERROR_FILE_NOT_FOUND);
+      WCMD_print_error ();
+    }
     return;
   }