diff --git a/debugger/debugger.pp b/debugger/debugger.pp
index da7fc17e3b..7f77536171 100644
--- a/debugger/debugger.pp
+++ b/debugger/debugger.pp
@@ -1929,7 +1929,7 @@ type
     procedure SetMonitor(const AValue: TCallStackMonitor);
   protected
     procedure RequestCount(ACallstack: TCurrentCallStack); virtual;
-    procedure RequestAtLeastCount(ACallstack: TCurrentCallStack; ARequiredMinCount: Integer); virtual;
+    procedure RequestAtLeastCount(ACallstack: TCurrentCallStack; {%H-}ARequiredMinCount: Integer); virtual;
     procedure RequestCurrent(ACallstack: TCurrentCallStack); virtual;
     procedure RequestEntries(ACallstack: TCurrentCallStack); virtual;
     procedure CurrentChanged;
diff --git a/ide/buildlazdialog.pas b/ide/buildlazdialog.pas
index 9991f0d272..c90644ed5d 100644
--- a/ide/buildlazdialog.pas
+++ b/ide/buildlazdialog.pas
@@ -50,7 +50,7 @@ uses
   ComCtrls, DividerBevel, DefineTemplates, CodeToolManager,
   // IDEIntf
   LazIDEIntf, IDEMsgIntf, IDEHelpIntf, IDEImagesIntf, IDEWindowIntf, IDEDialogs,
-  PackageIntf, IDEExternToolIntf,
+  PackageIntf,
   // IDE
   LazarusIDEStrConsts, TransferMacros, LazConf, IDEProcs, DialogProcs,
   MainBar, ExtToolEditDlg, EnvironmentOpts,
diff --git a/ide/buildmanager.pas b/ide/buildmanager.pas
index 35ac5feda8..bc3af721a1 100644
--- a/ide/buildmanager.pas
+++ b/ide/buildmanager.pas
@@ -35,7 +35,7 @@ uses
   Classes, SysUtils, AVL_Tree,
   // LCL
   LConvEncoding, InterfaceBase, LCLProc, Dialogs, FileUtil, Laz2_XMLCfg,
-  LazUTF8, LazUTF8Classes, Forms, Controls,
+  LazUTF8, Forms, Controls,
   // codetools
   ExprEval, BasicCodeTools, CodeToolManager, DefineTemplates, CodeCache,
   FileProcs, CodeToolsCfgScript, CodeToolsStructs,
diff --git a/ide/checklfmdlg.pas b/ide/checklfmdlg.pas
index 2376a3cd5b..3a148dc02d 100644
--- a/ide/checklfmdlg.pas
+++ b/ide/checklfmdlg.pas
@@ -41,11 +41,11 @@ uses
   PropEdits, IDEDialogs, ComponentReg, PackageIntf, IDEWindowIntf,
   CustomFormEditor, LazarusIDEStrConsts,
   {$IFDEF EnableNewExtTools}
+  IDEExternToolIntf,
   {$ELSE}
-  OutputFilter,
   {$ENDIF}
   IDEProcs, IDEOptionDefs, EditorOptions, ExtCtrls, JITForms, PropEditUtils,
-  IDEMsgIntf, IDEExternToolIntf;
+  IDEMsgIntf;
 
 type
 
diff --git a/ide/compiler.pp b/ide/compiler.pp
index b02b827559..919f95eba0 100644
--- a/ide/compiler.pp
+++ b/ide/compiler.pp
@@ -41,10 +41,11 @@ uses
   Classes, SysUtils, Process, LCLProc, Forms, Controls, contnrs, strutils, FileUtil,
   LazarusIDEStrConsts, CompilerOptions, Project,
   {$IFDEF EnableNewExtTools}
+  IDEExternToolIntf,
   {$ELSE}
   OutputFilter,
   {$ENDIF}
-  UTF8Process, InfoBuild, IDEMsgIntf, CompOptsIntf, IDEExternToolIntf,
+  UTF8Process, InfoBuild, IDEMsgIntf, CompOptsIntf,
   DefineTemplates, TransferMacros, EnvironmentOpts, LazFileUtils;
 
 type
@@ -950,6 +951,7 @@ var
 begin
   Result := mrOK;
   LastGroup := fRootOptGroup;
+  GroupItems:=nil;
   for i := 0 to aLines.Count-1 do
   begin
     ThisLine := StringReplace(aLines[i],'-Agas-darwinAssemble','-Agas-darwin Assemble',[]);
diff --git a/ide/exttooldialog.pas b/ide/exttooldialog.pas
index 79c9753931..2d9d06fe10 100644
--- a/ide/exttooldialog.pas
+++ b/ide/exttooldialog.pas
@@ -39,7 +39,7 @@ uses
   {$IFDEF IDE_MEM_CHECK}
   MemCheck,
   {$ENDIF}
-  Classes, SysUtils, Process, contnrs, LCLType, LCLProc, Controls, Forms,
+  Classes, SysUtils, Process, LCLType, LCLProc, Controls, Forms,
   Buttons, StdCtrls, ComCtrls, Dialogs, ExtCtrls, ButtonPanel, Menus,
   LazConfigStorage, FileProcs, UTF8Process,
   IDEExternToolIntf, IDEImagesIntf, IDEDialogs, IDEHelpIntf, IDECommands,
diff --git a/ide/exttooleditdlg.pas b/ide/exttooleditdlg.pas
index 3cf19d68a6..2ad76f66ec 100644
--- a/ide/exttooleditdlg.pas
+++ b/ide/exttooleditdlg.pas
@@ -42,7 +42,7 @@ uses
   {$IFDEF IDE_MEM_CHECK}
   MemCheck,
   {$ENDIF}
-  Classes, SysUtils, contnrs, FileUtil, LazConfigStorage, LazUTF8, LCLType,
+  Classes, SysUtils, FileUtil, LazUTF8, LCLType,
   Controls, Forms, Buttons, StdCtrls, Dialogs, ExtCtrls, LCLProc, ButtonPanel,
   IDEMsgIntf, IDEExternToolIntf, IDEHelpIntf, PropEdits, IDEDialogs,
   IDECommands, FileProcs, TransferMacros, LazarusIDEStrConsts, EnvironmentOpts,
diff --git a/ide/genericchecklist.pas b/ide/genericchecklist.pas
index 92a5c4d7ec..1b461a7fc9 100644
--- a/ide/genericchecklist.pas
+++ b/ide/genericchecklist.pas
@@ -6,7 +6,7 @@ unit GenericCheckList;
 interface
 
 uses
-  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ButtonPanel, CheckLst, LazarusIDEStrConsts, Buttons;
+  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ButtonPanel, CheckLst, Buttons;
 
 type
 
@@ -15,7 +15,7 @@ type
   TGenericCheckListForm = class(TForm)
     ButtonPanel1: TButtonPanel;
     CheckListBox1: TCheckListBox;
-    procedure CheckListBox1ItemClick(Sender: TObject; Index: integer);
+    procedure CheckListBox1ItemClick(Sender: TObject; {%H-}Index: integer);
     procedure FormShow(Sender: TObject);
   private
     fActionBtn: TBitBtn;
diff --git a/ide/genericlisteditor.pas b/ide/genericlisteditor.pas
index a8a0da1faf..66d71ced6d 100644
--- a/ide/genericlisteditor.pas
+++ b/ide/genericlisteditor.pas
@@ -6,7 +6,7 @@ interface
 
 uses
   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ButtonPanel,
-  StdCtrls, LazarusIDEStrConsts;
+  StdCtrls;
 
 type
 
diff --git a/ide/idecmdline.pas b/ide/idecmdline.pas
index 59ce5c3476..daa3a7e6bb 100644
--- a/ide/idecmdline.pas
+++ b/ide/idecmdline.pas
@@ -38,7 +38,7 @@ unit IDECmdLine;
 interface
 
 uses 
-  Classes, SysUtils, FileUtil, LazFileUtils, LazUTF8Classes, BaseIDEIntf,
+  Classes, SysUtils, FileUtil, LazFileUtils, LazUTF8Classes,
   LazLogger, LazConf, LCLProc;
 
 const
diff --git a/ide/mainbar.pas b/ide/mainbar.pas
index 5fc09c00df..513f85f5c0 100644
--- a/ide/mainbar.pas
+++ b/ide/mainbar.pas
@@ -41,7 +41,7 @@ uses
   Classes, SysUtils, LCLProc, Forms, Controls, Buttons, Menus,
   ComCtrls, ExtCtrls, Dialogs, LMessages,
   // IDEIntf
-  ProjectIntf, NewItemIntf, MenuIntf, LazIDEIntf, ExtendedTabControls,
+  ProjectIntf, NewItemIntf, MenuIntf, LazIDEIntf,
   EnvironmentOpts, LazarusIDEStrConsts;
 
 type
diff --git a/ide/project.pp b/ide/project.pp
index 4662507d81..15560882ef 100644
--- a/ide/project.pp
+++ b/ide/project.pp
@@ -3477,7 +3477,7 @@ var
     FFlags:=FFlags-[pfUseDefaultCompilerOptions];
   end;
 
-  procedure LoadCustomDefines(aConfig: TXMLConfig; const Path: string; Merge: boolean);
+  procedure LoadCustomDefines(aConfig: TXMLConfig; const Path: string; {%H-}Merge: boolean);
   var
     Cnt, i: Integer;
     s: String;
diff --git a/ide/sourcesyneditor.pas b/ide/sourcesyneditor.pas
index 2d89de584b..8b7ad9da13 100644
--- a/ide/sourcesyneditor.pas
+++ b/ide/sourcesyneditor.pas
@@ -46,7 +46,7 @@ uses
   {$IFDEF WinIME}
   LazSynIMM,
   {$ENDIF}
-  Classes, SysUtils, Controls, LCLProc, LCLType, Graphics, Menus, math, LazarusIDEStrConsts,
+  Classes, SysUtils, Controls, LCLProc, LCLType, Graphics, Menus, LazarusIDEStrConsts,
   SynEdit, SynEditMiscClasses, SynGutter, SynGutterBase, SynEditMarks, SynEditTypes,
   SynGutterLineNumber, SynGutterCodeFolding, SynGutterMarks, SynGutterChanges,
   SynGutterLineOverview, SynEditMarkup, SynEditMarkupGutterMark, SynEditMarkupSpecialLine,