diff --git a/ide/include/win/lazbaseconf.inc b/ide/include/win/lazbaseconf.inc
index 5d10594a62..b50816d5d2 100644
--- a/ide/include/win/lazbaseconf.inc
+++ b/ide/include/win/lazbaseconf.inc
@@ -180,10 +180,13 @@ begin
   DefaultDrive := ExtractFileDrive(ProgramDirectory);
   DefaultFPCTarget:= {$I %FPCTARGET%};
   DefaultFPCVersion:= {$I %FPCVERSION%};
-  PrimaryConfigPath := ChompPathDelim(ExtractFilePath(Paramstr(0)));
-  SecondaryConfigPath := SysUtils.GetEnvironmentVariable('WINDIR');
-  If SecondaryConfigPath = '' Then
-    SecondaryConfigPath := DefaultDrive + '\windows';
+  {$ifndef ver2_2_0}
+  PrimaryConfigPath:=GetAppConfigDir(False);
+  {$else}
+  // fpc 2.2.0 cannot handle spaces in path in some circumstances
+  PrimaryConfigPath:=ChompPathDelim(ProgramDirectory);
+  {$endif}
+  SecondaryConfigPath:=ChompPathDelim(ProgramDirectory);
   DefaultFPCSrcDirs[1] := AppendPathDelim(ProgramDirectory) + 'fpcsrc';
   DefaultLazarusSrcDirs[1] := DefaultDrive + '\lazarus';
 end;