diff -ruN a/main.pas b/main.pas --- a/main.pas 2014-01-04 03:51:46.000000000 -0700 +++ b/main.pas 2014-04-09 04:02:16.811032289 -0600 @@ -1005,10 +1005,9 @@ // Restart the app with the LIBOVERLAY_SCROLLBAR=0 env var. proc:=TProcess.Create(nil); try - s:=''; - for i:=0 to ParamCount do - s:=s + '"' + ParamStrUTF8(i) + '" '; - proc.CommandLine:=s; + proc.Executable:=ParamStrUTF8(0); + for i:=1 to ParamCount do + proc.Parameters.Add(ParamStrUTF8(i)); for i:=0 to GetEnvironmentVariableCount - 1 do proc.Environment.Add(GetEnvironmentString(i)); proc.Environment.Values['LIBOVERLAY_SCROLLBAR']:='0'; diff -ruN a/utils.pas b/utils.pas --- a/utils.pas 2014-01-04 03:51:46.000000000 -0700 +++ b/utils.pas 2014-04-09 04:05:21.552036348 -0600 @@ -398,18 +398,21 @@ cmd, fn: String; begin Result:=-1; + WrkProcess:=TProcess.Create(nil); + WrkProcess.Options:=[poNoConsole,poWaitOnExit]; + cmd:=FindDefaultExecutablePath('xdg-open'); if cmd = '' then begin cmd:=FindDefaultExecutablePath('gnome-open'); if cmd = '' then begin cmd:=FindDefaultExecutablePath('kioclient'); if cmd <> '' then - cmd:=cmd + ' exec' + Wrkprocess.Parameters.Add('exec') else begin cmd:=FindDefaultExecutablePath('kfmclient'); if cmd = '' then exit; - cmd:=cmd + ' exec'; + Wrkprocess.Parameters.Add('exec') end; end; end; @@ -417,11 +420,10 @@ fn:=FileName; if Pos('://', fn) > 0 then fn:=StringReplace(fn, '#', '%23', [rfReplaceAll]); + Wrkprocess.Parameters.Add(fn); + WrkProcess.Executable:=cmd; - WrkProcess:=TProcess.Create(nil); try - WrkProcess.Options:=[poNoConsole]; - WrkProcess.CommandLine:=cmd + ' "' + fn + '"'; WrkProcess.Execute; Result:=WrkProcess.ExitStatus; finally