diff --git a/.gitattributes b/.gitattributes
index 392a318c7e..a7ebbe9091 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -6293,6 +6293,7 @@ ide/initialsetupdlgs.pas svneol=native#text/pascal
 ide/initialsetupproc.pas svneol=native#text/plain
 ide/inputfiledialog.pas svneol=native#text/pascal
 ide/inputhistory.pas svneol=native#text/pascal
+ide/inputhistorywithsearchopt.pas svneol=native#text/pascal
 ide/inspectchksumchangeddlg.lfm svneol=native#text/plain
 ide/inspectchksumchangeddlg.pas svneol=native#text/pascal
 ide/invertassigntool.pas svneol=native#text/pascal
diff --git a/ide/buildmanager.pas b/ide/buildmanager.pas
index 9b6ae8d47a..c5987d11f0 100644
--- a/ide/buildmanager.pas
+++ b/ide/buildmanager.pas
@@ -178,7 +178,7 @@ type
     procedure TranslateMacros;
     procedure SetupExternalTools;
     procedure SetupCompilerInterface;
-    procedure SetupInputHistories;
+    procedure SetupInputHistories(aInputHist: TInputHistories);
     procedure EnvOptsChanged;
 
     function GetBuildMacroOverride(const MacroName: string): string; override;
@@ -264,8 +264,7 @@ begin
                                 Pointer(UnitFile2^.FileUnitName));
 end;
 
-function CompareUnitNameAndUnitFile(UnitName: PChar;
-  UnitFile: PUnitFile): integer;
+function CompareUnitNameAndUnitFile(UnitName: PChar; UnitFile: PUnitFile): integer;
 begin
   Result:=CompareIdentifierPtrs(Pointer(UnitName),Pointer(UnitFile^.FileUnitName));
 end;
@@ -524,14 +523,10 @@ begin
   TheCompiler := TCompiler.Create;
 end;
 
-procedure TBuildManager.SetupInputHistories;
+procedure TBuildManager.SetupInputHistories(aInputHist: TInputHistories);
 begin
-  if InputHistories<>nil then exit;
-  InputHistories:=TInputHistories.Create;
-  with InputHistories do begin
-    SetLazarusDefaultFilename;
-    Load;
-  end;
+  aInputHist.SetLazarusDefaultFilename;
+  aInputHist.Load;
 end;
 
 procedure TBuildManager.EnvOptsChanged;
diff --git a/ide/findinfilesdlg.pas b/ide/findinfilesdlg.pas
index 16504535da..a580bf4ae6 100644
--- a/ide/findinfilesdlg.pas
+++ b/ide/findinfilesdlg.pas
@@ -18,12 +18,19 @@ interface
 
 uses
   Classes, SysUtils,
-  FileProcs, LazFileUtils,
+  // LCL
   LCLProc, Controls, StdCtrls, Forms, Buttons, ExtCtrls, Dialogs, ButtonPanel,
+  // Codetools
+  FileProcs,
+  // LazUtils
+  LazFileUtils,
+  // SynEdit
   SynEditTypes, SynEdit,
+  // IdeIntf
   MacroIntf, IDEWindowIntf, SrcEditorIntf, IDEHelpIntf, IDEDialogs,
-  LazarusIDEStrConsts, InputHistory, EditorOptions, Project, IDEProcs,
-  SearchFrm, SearchResultView;
+  // IDE
+  LazarusIDEStrConsts, InputHistory, InputhistoryWithSearchOpt, EditorOptions, Project,
+  IDEProcs, SearchFrm, SearchResultView;
 
 type
   { TLazFindInFilesDialog }
@@ -367,7 +374,8 @@ begin
   // show last used file masks
   AssignToComboBox(FileMaskComboBox, InputHistories.FindInFilesMaskHistory);
   Options := InputHistories.FindInFilesSearchOptions;
-  SynSearchOptions := InputHistories.FindOptions * SharedOptions;//share basic options with FindReplaceDlg
+  //share basic options with FindReplaceDlg
+  SynSearchOptions := InputHistoriesSO.FindOptions * SharedOptions;
 end;
 
 procedure TLazFindInFilesDialog.SaveHistory;
@@ -382,7 +390,9 @@ begin
     InputHistories.AddToFindInFilesPathHistory(Dir);
   InputHistories.AddToFindInFilesMaskHistory(FileMaskComboBox.Text);
   InputHistories.FindInFilesSearchOptions:=Options;
-  InputHistories.FindOptions := InputHistories.FindOptions - SharedOptions + (SynSearchOptions*SharedOptions);//share basic options with FindReplaceDlg
+  //share basic options with FindReplaceDlg
+  InputHistoriesSO.FindOptions := InputHistoriesSO.FindOptions - SharedOptions
+                                              + (SynSearchOptions*SharedOptions);
   InputHistories.Save;
 end;
 
diff --git a/ide/inputhistory.pas b/ide/inputhistory.pas
index 49855e4d81..98798483ad 100644
--- a/ide/inputhistory.pas
+++ b/ide/inputhistory.pas
@@ -46,8 +46,6 @@ uses
   FileProcs,
   // IdeIntf
   ProjectIntf, IDEDialogs,
-  // SynEdit
-  SynEditTypes,
   // IDE
   DiffPatch, LazConf, IDEProcs;
 
@@ -178,7 +176,6 @@ type
     FFindHistory: TStringList;
     FFindInFilesSearchOptions: TLazFindInFileSearchOptions;
     FFindAutoComplete: boolean;
-    FFindOptions: TSynSearchOptions;
     FIgnores: TIHIgnoreIDEQuestionList;
     FLastConvertDelphiPackage: string;
     FLastConvertDelphiProject: string;
@@ -193,11 +190,13 @@ type
     
     // various history lists
     FHistoryLists: THistoryLists;
-    
     // file encodings
     fFileEncodings: TStringToStringTree;
     
     procedure SetFilename(const AValue: string);
+  protected
+    procedure LoadSearchOptions(XMLConfig: TXMLConfig; const Path: string); virtual; abstract;
+    procedure SaveSearchOptions(XMLConfig: TXMLConfig; const Path: string); virtual; abstract;
   public
     constructor Create;
     destructor Destroy;  override;
@@ -233,7 +232,6 @@ type
                                                  write FFindInFilesPathHistory;
     property FindInFilesMaskHistory: TStringList read FFindInFilesMaskHistory
                                                  write FFindInFilesMaskHistory;
-    property FindOptions: TSynSearchOptions read FFindOptions write FFindOptions;
     property FindInFilesSearchOptions: TLazFindInFileSearchOptions
                read FFindInFilesSearchOptions write FFindInFilesSearchOptions;
     property FindAutoComplete: boolean read FFindAutoComplete
@@ -253,7 +251,6 @@ type
     property DiffText2: string read FDiffText2 write FDiffText2;
     property DiffText2OnlySelection: boolean read FDiffText2OnlySelection
                                              write FDiffText2OnlySelection;
-
     // new dialog
     property NewProjectType: string read FNewProjectType write FNewProjectType;
     property NewFileType: string read FNewFileType write FNewFileType;
@@ -279,20 +276,6 @@ type
 
 const
   LazFindSearchOptionsDefault = [];
-  LazFindSearchOptionNames: array[TSynSearchOption] of string = (
-    'MatchCase',
-    'WholeWord',
-    'Backwards',
-    'EntireScope',
-    'SelectedOnly',
-    'Replace',
-    'ReplaceAll',
-    'Prompt',
-    'SearchInReplacement',
-    'RegExpr',
-    'RegExprMultiLine',
-    'ssoFindContinue'
-    );
   LazFindInFileSearchOptionsDefault = [fifSearchOpen, fifIncludeSubDirs];
   LazFindInFileSearchOptionNames: array[TLazFindInFileSearchOption] of string =(
     'MatchCase',
@@ -373,7 +356,6 @@ begin
   FFindInFilesPathHistory:=TStringList.Create;
   FFindInFilesMaskHistory:=TStringList.Create;
   FFindInFilesSearchOptions:=LazFindInFileSearchOptionsDefault;
-  FFindOptions:=LazFindSearchOptionsDefault;
 
   // file dialog
   FFileDialogSettings.HistoryList:=TStringList.Create;
@@ -381,9 +363,7 @@ begin
   
   // various history lists
   FHistoryLists:=THistoryLists.Create;
-  
   fFileEncodings:=TStringToStringTree.Create({$IFDEF CaseInsensitiveFilenames}false{$ELSE}true{$ENDIF});
-
   FIgnores:=TIHIgnoreIDEQuestionList.Create;
   IgnoreQuestions:=FIgnores;
 
@@ -434,7 +414,6 @@ procedure TInputHistories.LoadFromXMLConfig(XMLConfig: TXMLConfig; const Path: s
 var
   DiffFlag: TTextDiffFlag;
   FIFOption: TLazFindInFileSearchOption;
-  FindOption: TSynSearchOption;
 begin
   // Find- and replace-history
   FMaxFindHistory:=XMLConfig.GetValue(Path+'Find/History/Max',FMaxFindHistory);
@@ -454,16 +433,7 @@ begin
     then
       Include(FFindInFilesSearchOptions,FIFOption);
   end;
-
-  FFindOptions:=[];
-  for FindOption:=Low(FFindOptions) to High(FFindOptions)
-  do begin
-    if XMLConfig.GetValue(
-      Path+'Find/Options/'+LazFindSearchOptionNames[FindOption],
-      FindOption in LazFindSearchOptionsDefault)
-    then
-      Include(FFindOptions,FindOption);
-  end;
+  LoadSearchOptions(XMLConfig, Path); // Search Options depend on SynEdit.
 
   // file dialog
   with FFileDialogSettings do begin
@@ -514,7 +484,6 @@ procedure TInputHistories.SaveToXMLConfig(XMLConfig: TXMLConfig; const Path: str
 var
   DiffFlag: TTextDiffFlag;
   FIFOption: TLazFindInFileSearchOption;
-  FindOption: TSynSearchOption;
 begin
   // Find- and replace-history
   XMLConfig.SetDeleteValue(Path+'Find/History/Max',FMaxFindHistory,20);
@@ -532,12 +501,7 @@ begin
       FIFOption in FindInFilesSearchOptions,
       FIFOption in LazFindInFileSearchOptionsDefault);
   end;
-  for FindOption:=Low(FFindOptions) to High(FFindOptions) do begin
-    XMLConfig.SetDeleteValue(
-      Path+'Find/Options/'+LazFindSearchOptionNames[FindOption],
-      FindOption in FindOptions,
-      FindOption in LazFindSearchOptionsDefault);
-  end;
+  SaveSearchOptions(XMLConfig, Path); // Search Options depend on SynEdit.
 
   // file dialog
   with FFileDialogSettings do begin
@@ -617,8 +581,7 @@ begin
   try
     InvalidateFileStateCache;
     XMLConfig:=TXMLConfig.CreateClean(FFileName);
-    XMLConfig.SetDeleteValue('InputHistory/Version/Value',
-      InputHistoryVersion,0);
+    XMLConfig.SetDeleteValue('InputHistory/Version/Value',InputHistoryVersion,0);
     SaveToXMLConfig(XMLConfig,'InputHistory/');
     XMLConfig.Flush;
     XMLConfig.Free;
@@ -693,7 +656,7 @@ begin
     if WorkDirectoryDialog.Execute then begin
       Result := WorkDirectoryDialog.Filename;
     end;
-    InputHistories.StoreFileDialogSettings(WorkDirectoryDialog);
+    StoreFileDialogSettings(WorkDirectoryDialog);
   finally
     WorkDirectoryDialog.Free;
   end;
@@ -985,9 +948,5 @@ begin
   XMLConfig.SetDeleteValue(Path+'Count',i,0);
 end;
 
-initialization
-  InputHistories:= nil;
-
-
 end.
 
diff --git a/ide/inputhistorywithsearchopt.pas b/ide/inputhistorywithsearchopt.pas
new file mode 100644
index 0000000000..8af6497079
--- /dev/null
+++ b/ide/inputhistorywithsearchopt.pas
@@ -0,0 +1,116 @@
+{
+ ***************************************************************************
+ *                                                                         *
+ *   This source is free software; you can redistribute it and/or modify   *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This code is distributed in the hope that it will be useful, but      *
+ *   WITHOUT ANY WARRANTY; without even the implied warranty of            *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
+ *   General Public License for more details.                              *
+ *                                                                         *
+ *   A copy of the GNU General Public License is available on the World    *
+ *   Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also      *
+ *   obtain it by writing to the Free Software Foundation,                 *
+ *   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.        *
+ *                                                                         *
+ ***************************************************************************
+
+  Abstract:
+    SynEdit (actually TSynSearchOptions) dependent parts separated from
+    InputHistory unit. The idea is to reduce dependencies.
+}
+unit InputhistoryWithSearchOpt;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+  // LazUtils
+  Laz2_XMLCfg,
+  // SynEdit
+  SynEditTypes,
+  // IDE
+  InputHistory;
+
+type
+
+  { TInputHistoriesWithSearchOpt }
+
+  TInputHistoriesWithSearchOpt = class(TInputHistories)
+  private
+    FFindOptions: TSynSearchOptions;
+  protected
+    procedure LoadSearchOptions(XMLConfig: TXMLConfig; const Path: string); override;
+    procedure SaveSearchOptions(XMLConfig: TXMLConfig; const Path: string); override;
+  public
+    constructor Create;
+    destructor Destroy; override;
+    property FindOptions: TSynSearchOptions read FFindOptions write FFindOptions;
+  end;
+
+const
+  LazFindSearchOptionNames: array[TSynSearchOption] of string = (
+    'MatchCase',
+    'WholeWord',
+    'Backwards',
+    'EntireScope',
+    'SelectedOnly',
+    'Replace',
+    'ReplaceAll',
+    'Prompt',
+    'SearchInReplacement',
+    'RegExpr',
+    'RegExprMultiLine',
+    'ssoFindContinue'
+    );
+
+var
+  InputHistoriesSO: TInputHistoriesWithSearchOpt = nil;
+
+implementation
+
+{ TInputHistoriesWithSearchOpt }
+
+constructor TInputHistoriesWithSearchOpt.Create;
+begin
+  inherited Create;
+  FFindOptions:=LazFindSearchOptionsDefault;
+end;
+
+destructor TInputHistoriesWithSearchOpt.Destroy;
+begin
+  inherited Destroy;
+end;
+
+procedure TInputHistoriesWithSearchOpt.LoadSearchOptions(XMLConfig: TXMLConfig; const Path: string);
+var
+  FindOption: TSynSearchOption;
+begin
+  FFindOptions:=[];
+  for FindOption:=Low(FFindOptions) to High(FFindOptions) do
+  begin
+    if XMLConfig.GetValue(Path+'Find/Options/'+LazFindSearchOptionNames[FindOption],
+                          FindOption in LazFindSearchOptionsDefault)
+    then
+      Include(FFindOptions,FindOption);
+  end;
+end;
+
+procedure TInputHistoriesWithSearchOpt.SaveSearchOptions(XMLConfig: TXMLConfig; const Path: string);
+var
+  FindOption: TSynSearchOption;
+begin
+  for FindOption:=Low(FFindOptions) to High(FFindOptions) do begin
+    XMLConfig.SetDeleteValue(
+      Path+'Find/Options/'+LazFindSearchOptionNames[FindOption],
+      FindOption in FindOptions,
+      FindOption in LazFindSearchOptionsDefault);
+  end;
+end;
+
+end.
+
diff --git a/ide/lazarus.lpi b/ide/lazarus.lpi
index 582e97f301..c0a34c5773 100644
--- a/ide/lazarus.lpi
+++ b/ide/lazarus.lpi
@@ -16,8 +16,6 @@
       <UseXPManifest Value="True"/>
       <XPManifest>
         <DpiAware Value="True"/>
-        <TextName Value="CompanyName.ProductName.AppName"/>
-        <TextDesc Value="Your application description."/>
       </XPManifest>
       <Icon Value="0"/>
     </General>
@@ -68,7 +66,7 @@
         <PackageName Value="SynEdit"/>
       </Item7>
     </RequiredPackages>
-    <Units Count="241">
+    <Units Count="242">
       <Unit0>
         <Filename Value="lazarus.pp"/>
         <IsPartOfProject Value="True"/>
@@ -532,6 +530,7 @@
         <Filename Value="buildprojectdlg.pas"/>
         <IsPartOfProject Value="True"/>
         <HasResources Value="True"/>
+        <UnitName Value="BuildProjectDlg"/>
       </Unit75>
       <Unit76>
         <Filename Value="ideguicmdline.pas"/>
@@ -772,6 +771,7 @@
       <Unit119>
         <Filename Value="inputhistory.pas"/>
         <IsPartOfProject Value="True"/>
+        <UnitName Value="InputHistory"/>
       </Unit119>
       <Unit120>
         <Filename Value="makeresstrdlg.pas"/>
@@ -811,6 +811,7 @@
       <Unit127>
         <Filename Value="buildmanager.pas"/>
         <IsPartOfProject Value="True"/>
+        <UnitName Value="BuildManager"/>
       </Unit127>
       <Unit128>
         <Filename Value="basebuildmanager.pas"/>
@@ -1112,7 +1113,10 @@
       <Unit191>
         <Filename Value="viewunit_dlg.pp"/>
         <IsPartOfProject Value="True"/>
+        <ComponentName Value="ViewUnitDialog"/>
         <HasResources Value="True"/>
+        <ResourceBaseClass Value="Form"/>
+        <UnitName Value="ViewUnit_Dlg"/>
       </Unit191>
       <Unit192>
         <Filename Value="codetoolsdefines.pas"/>
@@ -1181,7 +1185,10 @@
       <Unit206>
         <Filename Value="findinfilesdlg.pas"/>
         <IsPartOfProject Value="True"/>
+        <ComponentName Value="LazFindInFilesDialog"/>
         <HasResources Value="True"/>
+        <ResourceBaseClass Value="Form"/>
+        <UnitName Value="FindInFilesDlg"/>
       </Unit206>
       <Unit207>
         <Filename Value="ideoptionsdlg.pas"/>
@@ -1230,6 +1237,7 @@
         <Filename Value="runparamsopts.pas"/>
         <IsPartOfProject Value="True"/>
         <HasResources Value="True"/>
+        <UnitName Value="RunParamsOpts"/>
       </Unit216>
       <Unit217>
         <Filename Value="idetranslations.pas"/>
@@ -1351,6 +1359,11 @@
         <ResourceBaseClass Value="Form"/>
         <UnitName Value="DefinesGui"/>
       </Unit240>
+      <Unit241>
+        <Filename Value="inputhistorywithsearchopt.pas"/>
+        <IsPartOfProject Value="True"/>
+        <UnitName Value="InputhistoryWithSearchOpt"/>
+      </Unit241>
     </Units>
   </ProjectOptions>
   <CompilerOptions>
diff --git a/ide/main.pp b/ide/main.pp
index 724239ec8f..00be8bafef 100644
--- a/ide/main.pp
+++ b/ide/main.pp
@@ -146,7 +146,7 @@ uses
   KeyMapping, IDETranslations, IDEProcs, ExtToolDialog, ExtToolEditDlg,
   JumpHistoryView, DesktopManager, ExampleManager,
   BuildLazDialog, BuildProfileManager, BuildManager, CheckCompOptsForNewUnitDlg,
-  MiscOptions, InputHistory, UnitDependencies,
+  MiscOptions, InputHistory, InputhistoryWithSearchOpt, UnitDependencies,
   IDEFPCInfo, IDEInfoDlg, IDEInfoNeedBuild, ProcessList, InitialSetupDlgs,
   InitialSetupProc, NewDialog, MakeResStrDlg, DialogProcs, FindReplaceDialog,
   FindInFilesDlg, CodeExplorer, BuildFileDlg, ProcedureList, ExtractProcDlg,
@@ -1353,10 +1353,12 @@ begin
 
   DebuggerOptions := TDebuggerOptions.Create;
 
-  MainBuildBoss.SetupInputHistories;
+  Assert(InputHistories = nil, 'TMainIDE.LoadGlobalOptions: InputHistories is already assigned.');
+  InputHistoriesSO := TInputHistoriesWithSearchOpt.Create;
+  InputHistories := InputHistoriesSO;
+  MainBuildBoss.SetupInputHistories(InputHistories);
 
   CreateDirUTF8(GetProjectSessionsConfigPath);
-
   RunBootHandlers(libhEnvironmentOptionsLoaded);
 end;
 
diff --git a/ide/sourceeditor.pp b/ide/sourceeditor.pp
index 34b911242e..3005a8e134 100644
--- a/ide/sourceeditor.pp
+++ b/ide/sourceeditor.pp
@@ -74,11 +74,11 @@ uses
   IDECmdLine, LazarusIDEStrConsts, IDECommands, EditorOptions, EnvironmentOpts,
   WordCompletion, FindReplaceDialog, IDEProcs, IDEOptionDefs, IDEHelpManager,
   MacroPromptDlg, TransferMacros, CodeContextForm, SrcEditHintFrm, etMessagesWnd,
-  etSrcEditMarks, InputHistory, CodeMacroPrompt, CodeTemplatesDlg, CodeToolsOptions,
+  etSrcEditMarks, CodeMacroPrompt, CodeTemplatesDlg, CodeToolsOptions,
   editor_general_options, SortSelectionDlg, EncloseSelectionDlg, EncloseIfDef,
   InvertAssignTool, SourceEditProcs, SourceMarks, CharacterMapDlg, SearchFrm,
   MultiPasteDlg, EditorMacroListViewer, EditorToolbarStatic, editortoolbar_options,
-  FPDocHints, MainIntf, GotoFrm, BaseDebugManager, Debugger;
+  InputhistoryWithSearchOpt, FPDocHints, MainIntf, GotoFrm, BaseDebugManager, Debugger;
 
 type
   TSourceNotebook = class;
@@ -3338,12 +3338,12 @@ begin
     NewOptions := NewOptions + [ssoReplace, ssoReplaceAll]
   else
     NewOptions := NewOptions - [ssoReplace, ssoReplaceAll];
-  NewOptions:=NewOptions-SaveOptions+InputHistories.FindOptions*SaveOptions
+  NewOptions:=NewOptions-SaveOptions+InputHistoriesSO.FindOptions*SaveOptions
                         -[ssoSelectedOnly, ssoEntireScope];
 
   // Fill in history items
-  LazFindReplaceDialog.TextToFindComboBox.Items.Assign(InputHistories.FindHistory);
-  LazFindReplaceDialog.ReplaceTextComboBox.Items.Assign(InputHistories.ReplaceHistory);
+  LazFindReplaceDialog.TextToFindComboBox.Items.Assign(InputHistoriesSO.FindHistory);
+  LazFindReplaceDialog.ReplaceTextComboBox.Items.Assign(InputHistoriesSO.ReplaceHistory);
 
   with EditorComponent do begin
     if SelAvail then
@@ -3367,10 +3367,10 @@ begin
       LazFindReplaceDialog.FindText:='';
     end;
   end;
-  LazFindReplaceDialog.EnableAutoComplete:=InputHistories.FindAutoComplete;
+  LazFindReplaceDialog.EnableAutoComplete:=InputHistoriesSO.FindAutoComplete;
   // if there is no FindText, use the most recently used FindText
-  if (LazFindReplaceDialog.FindText='') and (InputHistories.FindHistory.Count > 0) then
-    LazFindReplaceDialog.FindText:=InputHistories.FindHistory[0];
+  if (LazFindReplaceDialog.FindText='') and (InputHistoriesSO.FindHistory.Count > 0) then
+    LazFindReplaceDialog.FindText:=InputHistoriesSO.FindHistory[0];
 
   GetDialogPosition(LazFindReplaceDialog.Width,LazFindReplaceDialog.Height,ALeft,ATop);
   LazFindReplaceDialog.Left:=ALeft;
@@ -3378,17 +3378,17 @@ begin
 
   LazFindReplaceDialog.Options := NewOptions;
   DlgResult:=LazFindReplaceDialog.ShowModal;
-  InputHistories.FindOptions:=LazFindReplaceDialog.Options*SaveOptions;
-  InputHistories.FindAutoComplete:=LazFindReplaceDialog.EnableAutoComplete;
+  InputHistoriesSO.FindOptions:=LazFindReplaceDialog.Options*SaveOptions;
+  InputHistoriesSO.FindAutoComplete:=LazFindReplaceDialog.EnableAutoComplete;
   if DlgResult = mrCancel then
     exit;
   //debugln('TSourceEditor.StartFindAndReplace B LazFindReplaceDialog.FindText="',dbgstr(LazFindReplaceDialog.FindText),'"');
 
   Replace:=ssoReplace in LazFindReplaceDialog.Options;
   if Replace then
-    InputHistories.AddToReplaceHistory(LazFindReplaceDialog.ReplaceText);
-  InputHistories.AddToFindHistory(LazFindReplaceDialog.FindText);
-  InputHistories.Save;
+    InputHistoriesSO.AddToReplaceHistory(LazFindReplaceDialog.ReplaceText);
+  InputHistoriesSO.AddToFindHistory(LazFindReplaceDialog.FindText);
+  InputHistoriesSO.Save;
   DoFindAndReplace(LazFindReplaceDialog.FindText, LazFindReplaceDialog.ReplaceText,
     LazFindReplaceDialog.Options);
 end;
@@ -6473,7 +6473,7 @@ begin
           SrcEdit.CodeBuffer.DiskEncoding:=NewEncoding;
           SrcEdit.CodeBuffer.Modified:=true;
           // set override
-          InputHistories.FileEncodings[SrcEdit.CodeBuffer.Filename]:=NewEncoding;
+          InputHistoriesSO.FileEncodings[SrcEdit.CodeBuffer.Filename]:=NewEncoding;
           DebugLn(['TSourceNotebook.EncodingClicked Change file to ',SrcEdit.CodeBuffer.DiskEncoding]);
           if (not SrcEdit.CodeBuffer.IsVirtual)
           and (LazarusIDE.DoSaveEditorFile(SrcEdit, []) <> mrOk)
@@ -6492,7 +6492,7 @@ begin
             end;
           end;
           // set override
-          InputHistories.FileEncodings[SrcEdit.CodeBuffer.Filename]:=NewEncoding;
+          InputHistoriesSO.FileEncodings[SrcEdit.CodeBuffer.Filename]:=NewEncoding;
           if not SrcEdit.CodeBuffer.Revert then begin
             IDEMessageDialog(lisCodeToolsDefsReadError,
               Format(lisUnableToRead, [SrcEdit.CodeBuffer.Filename]),