Handle the lpDirectory field of the LPSHELLEXECUTEINFO.
diff --git a/dlls/shell32/shellord.c b/dlls/shell32/shellord.c
index 639aaa3..56853ce 100644
--- a/dlls/shell32/shellord.c
+++ b/dlls/shell32/shellord.c
@@ -1035,15 +1035,18 @@
TRACE("execute:'%s','%s'\n",szApplicationName, szCommandline);
- strcat(szApplicationName, " ");
- strcat(szApplicationName, szCommandline);
+ if (szCommandline[0]) {
+ strcat(szApplicationName, " ");
+ strcat(szApplicationName, szCommandline);
+ }
ZeroMemory(&startup,sizeof(STARTUPINFOA));
startup.cb = sizeof(STARTUPINFOA);
if (! CreateProcessA(NULL, szApplicationName,
NULL, NULL, FALSE, 0,
- NULL, NULL, &startup, &info))
+ NULL, sei->lpDirectory,
+ &startup, &info))
{
sei->hInstApp = GetLastError();
return FALSE;