diff --git a/loader/module.c b/loader/module.c
index 44ceac5c58b1b2a990f5ab360e20836ce6b69788..264b7f00771f6dfd90cf9d05c8852877cb89ca04 100644
--- a/loader/module.c
+++ b/loader/module.c
@@ -712,13 +712,17 @@ BOOL WINAPI GetBinaryTypeW( LPCWSTR lpApplicationName, LPDWORD lpBinaryType )
  */
 HINSTANCE16 WINAPI WinExec16( LPCSTR lpCmdLine, UINT16 nCmdShow )
 {
-    LPCSTR p;
+    LPCSTR p = NULL;
     LPSTR name, cmdline;
     int len;
     HINSTANCE16 ret;
     char buffer[MAX_PATH];
 
-    if ((p = strchr( lpCmdLine, ' ' )))
+    if ( ( *lpCmdLine == '"' )  &&  ( p = strchr ( lpCmdLine+1, '"' ) ) )
+      p = strchr ( p, ' ' );
+    else 
+      p = strchr( lpCmdLine, ' ' );
+    if ( p )
     {
         if (!(name = HeapAlloc( GetProcessHeap(), 0, p - lpCmdLine + 1 )))
             return ERROR_NOT_ENOUGH_MEMORY;