diff --git a/ide/buildmanager.pas b/ide/buildmanager.pas
index 8c36f67304..c6d264c81a 100644
--- a/ide/buildmanager.pas
+++ b/ide/buildmanager.pas
@@ -357,7 +357,7 @@ end;
destructor TBuildManager.Destroy;
begin
- FreeAndNil(ExternalTools);
+ ExternalTools.Free; // sets ExternalTools to nil, do not use FreeAndNil!
GetBuildMacroValues:=nil;
OnAppendCustomOption:=nil;
@@ -530,9 +530,13 @@ begin
end;
procedure TBuildManager.SetupExternalTools(aToolsClass: TExternalToolsClass);
+var
+ Tools: TExternalTools;
begin
// setup the external tool queue
- ExternalTools:=aToolsClass.Create(Self);
+ Tools:=aToolsClass.Create(Self);
+ if Tools<>ExternalTools then
+ raise Exception.Create('TBuildManager.SetupExternalTools ExternalTools='+DbgSName(ExternalTools));
EnvOptsChanged;
RegisterFPCParser;
RegisterPas2jsParser;
diff --git a/ide/lazbuild.lpi b/ide/lazbuild.lpi
index 39a5cc8f2e..f09245f8e6 100644
--- a/ide/lazbuild.lpi
+++ b/ide/lazbuild.lpi
@@ -43,6 +43,9 @@
+
+
+