Index: include/win/lazbaseconf.inc
===================================================================
--- include/win/lazbaseconf.inc	(revision 22077)
+++ include/win/lazbaseconf.inc	(working copy)
@@ -148,18 +148,37 @@
   procedure InternalInit;
  ---------------------------------------------------------------------------}
 procedure InternalInit;
+var
+  Config: TStringList;
+  aPath: string;
+  aCfgFile: string;
 begin
   DefaultDrive := ExtractFileDrive(ProgramDirectory);
   DefaultFPCTarget:= GetDefaultTargetCPU + '-' + GetDefaultTargetOS;
   DefaultFPCVersion:= {$I %FPCVERSION%};
+  aPath := '';
+  aCfgFile := IncludeTrailingPathDelimiter(ProgramDirectory) + 'lazarus.cfg';
+  if FileExistsUTF8(aCfgFile) then
+  begin
+    Config := TStringList.Create;
+    try
+      Config.LoadFromFile(aCfgFile);
+      aPath := Config.Values['ConfigDir'];
+    finally
+      Config.Free;
+    end;
+  end;
+  if aPath <> '' then
+    PrimaryConfigPath := aPath
+  else
   {$ifndef ver2_2_0}
   // the last part of the path returned by GetAppConfigDir is the application
   // name. Replace that by 'lazarus', to make sure that lazbuild uses
   // the same primary config path
-  PrimaryConfigPath:= ExtractFilePath(ChompPathDelim(SysToUTF8(GetAppConfigDir(False)))) + 'lazarus';
+    PrimaryConfigPath:= ExtractFilePath(ChompPathDelim(SysToUTF8(GetAppConfigDir(False)))) + 'lazarus';
   {$else}
   // fpc 2.2.0 cannot handle spaces in path in some circumstances
-  PrimaryConfigPath:=ChompPathDelim(ProgramDirectory);
+    PrimaryConfigPath:=ChompPathDelim(ProgramDirectory);
   {$endif}
   SecondaryConfigPath:=ChompPathDelim(ProgramDirectory);
   DefaultFPCSrcDirs[1] := AppendPathDelim(ProgramDirectory) + 'fpcsrc';
