diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp
index d79795cbd28845f17f739392751520ba6dcbd1bb..0a102c4ae95cd78a7b2d7ee000c0df593e4ce7c3 100644
--- a/src/plugins/debugger/debuggeractions.cpp
+++ b/src/plugins/debugger/debuggeractions.cpp
@@ -422,6 +422,10 @@ DebuggerSettings *theDebuggerSettings()
     item->setText(QObject::tr("Use custom dumpers"));
     item->setCheckable(true);
 
+    item = new DebuggerAction(instance);
+    instance->insertItem(Terminal, item);
+    item->setDefaultValue("xterm");
+    item->setSettingsKey("DebugMode", "Terminal");
 
     item = new DebuggerAction(instance);
     instance->insertItem(ListSourceFiles, item);
diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h
index 2a64e45c2ae5222ba025e3c5eae28b625c73165a..528bcc2c4d9760d46d86727ed87fbe9c2cc91900 100644
--- a/src/plugins/debugger/debuggeractions.h
+++ b/src/plugins/debugger/debuggeractions.h
@@ -141,6 +141,7 @@ enum DebuggerActionCode
     GdbScriptFile,
     GdbAutoRun,
     GdbAutoQuit,
+    Terminal,
 
     // Watchers & Locals
     WatchExpression,
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 13de5d0c8e762f6dbd5c121c85ce85fc45b288f5..8f4905c9d2c961cfe2b37f2f3e7d1b8d3f2a55e8 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -268,6 +268,8 @@ QWidget *GdbOptionPage::createPage(QWidget *parent)
     m_ui.gdbLocationChooser->setPromptDialogTitle(tr("Choose Gdb Location"));
     m_ui.scriptFileChooser->setExpectedKind(Core::Utils::PathChooser::File);
     m_ui.scriptFileChooser->setPromptDialogTitle(tr("Choose Location of Startup Script File"));
+    m_ui.terminalChooser->setExpectedKind(Core::Utils::PathChooser::Command);
+    m_ui.terminalChooser->setPromptDialogTitle(tr("Choose Location of Terminal Application"));
 
     theDebuggerAction(GdbLocation)
         ->connectWidget(m_ui.gdbLocationChooser);
@@ -275,6 +277,8 @@ QWidget *GdbOptionPage::createPage(QWidget *parent)
         ->connectWidget(m_ui.scriptFileChooser);
     theDebuggerAction(GdbEnvironment)
         ->connectWidget(m_ui.environmentEdit);
+    theDebuggerAction(Terminal)
+        ->connectWidget(m_ui.terminalChooser);
 
     theDebuggerAction(AllPluginBreakpoints)
         ->connectWidget(m_ui.radioButtonAllPluginBreakpoints);
@@ -328,6 +332,7 @@ void GdbOptionPage::apply()
     theDebuggerAction(GdbLocation)->apply(s);
     theDebuggerAction(GdbScriptFile)->apply(s);
     theDebuggerAction(GdbEnvironment)->apply(s);
+    theDebuggerAction(Terminal)->apply(s);
 
     theDebuggerAction(AllPluginBreakpoints)->apply(s);
     theDebuggerAction(SelectedPluginBreakpoints)->apply(s);
diff --git a/src/plugins/debugger/gdboptionpage.ui b/src/plugins/debugger/gdboptionpage.ui
index 5305559947592bd264d3e5730f5da9968a8fc055..3a51818c86ba157873a1c4b1480d291488086536 100644
--- a/src/plugins/debugger/gdboptionpage.ui
+++ b/src/plugins/debugger/gdboptionpage.ui
@@ -32,10 +32,21 @@
       <item row="0" column="0">
        <widget class="QLabel" name="labelGdbLocation">
         <property name="toolTip">
-         <string>This is either a full abolute path leading to the gdb binary you intend to use or the name of a gdb binary that wiull be searched in your PATH.</string>
+         <string>This is either a full abolute path leading to the gdb binary you intend to use or the name of a gdb binary that will be searched in your PATH.</string>
         </property>
         <property name="text">
-         <string>Gdb Location:</string>
+         <string>Gdb location:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="0">
+       <widget class="QLabel" name="terminalLocation">
+        <property name="toolTip">
+         <string>This is either a full abolute path leading to the terminal
+you indent to use or the name of a terminal that will be searched in your PATH.</string>
+        </property>
+        <property name="text">
+         <string>Terminal:</string>
         </property>
        </widget>
       </item>
@@ -55,7 +66,7 @@
          <string>This is either empty or points to a file containing gdb commands that will be executed immediately after gdb starts up.</string>
         </property>
         <property name="text">
-         <string>Gdb Startup Script:</string>
+         <string>Gdb startup script:</string>
         </property>
        </widget>
       </item>
@@ -65,6 +76,9 @@
       <item row="0" column="1">
        <widget class="Core::Utils::PathChooser" name="gdbLocationChooser" native="true"/>
       </item>
+      <item row="3" column="1">
+       <widget class="Core::Utils::PathChooser" name="terminalChooser" native="true"/>
+      </item>
      </layout>
     </widget>
    </item>