diff --git a/ivette/src/frama-c/server.ts b/ivette/src/frama-c/server.ts
index 77f76c421624c153e945803fe491164bd03e3d9c..c43690340005c66589b631d1e2db19b383207a5a 100644
--- a/ivette/src/frama-c/server.ts
+++ b/ivette/src/frama-c/server.ts
@@ -133,7 +133,7 @@ let killingTimer: NodeJS.Timeout | undefined;
 // --------------------------------------------------------------------------
 
 /** The server console buffer. */
-export const buffer = new RichTextBuffer({ maxlines: 200 });
+export const buffer = new RichTextBuffer();
 
 // --------------------------------------------------------------------------
 // --- Server Status
diff --git a/ivette/src/ivette/prefs.tsx b/ivette/src/ivette/prefs.tsx
index 75d501a8378c761683f88103d3790ad41b3a51f4..4a947f3deb179f3bb53e706154fe71d3774ca6dd 100644
--- a/ivette/src/ivette/prefs.tsx
+++ b/ivette/src/ivette/prefs.tsx
@@ -93,3 +93,14 @@ export const EditorCommand =
   new Settings.GString('Editor.Command', 'emacs +%n:%c %s');
 
 // --------------------------------------------------------------------------
+// --- Console Scrollback configuration
+// --------------------------------------------------------------------------
+
+export const ConsoleScrollback =
+  new Settings.GNumber('Console.Scrollback', 2000);
+
+export interface ConsoleScrollbackProps {
+  scrollback: Settings.GlobalSettings<number>;
+}
+
+// --------------------------------------------------------------------------
diff --git a/ivette/src/renderer/Controller.tsx b/ivette/src/renderer/Controller.tsx
index 5dde04e965faa98d5ec971575096eb8c58603725..b1a72c19ebb353790e911c237aa478b834b6687e 100644
--- a/ivette/src/renderer/Controller.tsx
+++ b/ivette/src/renderer/Controller.tsx
@@ -30,6 +30,7 @@ import React from 'react';
 import * as Dome from 'dome';
 import * as Json from 'dome/data/json';
 import * as Settings from 'dome/data/settings';
+import * as Preferences from 'ivette/prefs';
 
 import * as Toolbars from 'dome/frame/toolbars';
 import { IconButton } from 'dome/controls/buttons';
@@ -211,6 +212,11 @@ const RenderConsole = () => {
     return () => { editor.off('change', callback); };
   });
 
+  const [maxLines] = Settings.useGlobalSettings(Preferences.ConsoleScrollback);
+  React.useEffect(() => {
+    Server.buffer.setMaxlines(maxLines);
+  });
+
   const doReload = () => {
     const cfg = Server.getConfig();
     const hst = insertConfig(history, cfg);
diff --git a/ivette/src/renderer/Preferences.tsx b/ivette/src/renderer/Preferences.tsx
index 1a2ee3750afae6c72dd903444c552a9070c70bbb..47ec4a74e2386cd36fbbe70660b97d3db90ccc4b 100644
--- a/ivette/src/renderer/Preferences.tsx
+++ b/ivette/src/renderer/Preferences.tsx
@@ -99,6 +99,17 @@ function EditorFields() {
   );
 }
 
+// --------------------------------------------------------------------------
+// --- Console Scrollback Forms
+// --------------------------------------------------------------------------
+function ConsoleScrollbackFields(props: IvettePrefs.ConsoleScrollbackProps) {
+  const scrollback = Forms.useDefined(Forms.useValid(
+    Settings.useGlobalSettings(props.scrollback),
+  ));
+  const title = 'Maximum number of lines in the console window';
+  return (<Forms.NumberField state={scrollback} label="Lines" title={title} />);
+}
+
 // --------------------------------------------------------------------------
 // --- Export Components
 // --------------------------------------------------------------------------
@@ -112,6 +123,9 @@ export default function Preferences() {
       <Forms.Section label="Editors" unfold>
         <EditorFields />
       </Forms.Section>
+      <Forms.Section label="Console Scrollback" unfold>
+        <ConsoleScrollbackFields scrollback={IvettePrefs.ConsoleScrollback} />
+      </Forms.Section>
     </Forms.Page>
   );
 }