diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp
index 61d0ba1ce74279e749b4277c921f20dd375b9c1b..06fad14ba01e86788a830746074a0a831eb57f9a 100644
--- a/src/plugins/debugger/debuggermanager.cpp
+++ b/src/plugins/debugger/debuggermanager.cpp
@@ -68,6 +68,7 @@
 #include <cplusplus/CppDocument.h>
 #include <cpptools/cppmodelmanagerinterface.h>
 #include <qt4projectmanager/qt4projectmanagerconstants.h>
+#include <texteditor/fontsettings.h>
 #include <texteditor/itexteditor.h>
 
 #include <QtCore/QDebug>
@@ -1877,6 +1878,27 @@ QDebug operator<<(QDebug d, DebuggerState state)
     return d << DebuggerManager::stateName(state) << '(' << int(state) << ')';
 }
 
+static void changeFontSize(QWidget *widget, int size)
+{
+    QFont font = widget->font();
+    font.setPointSize(size);
+    widget->setFont(font);
+}
+
+void DebuggerManager::fontSettingsChanged(const TextEditor::FontSettings &settings)
+{
+    int size = settings.fontZoom() * settings.fontSize() / 100;
+    changeFontSize(d->m_localsWindow, size);
+    changeFontSize(d->m_watchersWindow, size);
+    changeFontSize(d->m_breakWindow, size);
+    changeFontSize(d->m_modulesWindow, size);
+    changeFontSize(d->m_outputWindow, size);
+    changeFontSize(d->m_registerWindow, size);
+    changeFontSize(d->m_stackWindow, size);
+    changeFontSize(d->m_sourceFilesWindow, size);
+    changeFontSize(d->m_threadsWindow, size);
+}
+
 //////////////////////////////////////////////////////////////////////
 //
 // AbstractDebuggerEngine
diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h
index 782dec318f3e024c1094f9d5e8fc3015498f00b3..55f03a055f614658adaa69c36f9bb655d200bbfc 100644
--- a/src/plugins/debugger/debuggermanager.h
+++ b/src/plugins/debugger/debuggermanager.h
@@ -59,6 +59,7 @@ class FancyMainWindow;
 
 namespace TextEditor {
 class ITextEditor;
+class FontSettings;
 }
 
 namespace CPlusPlus {
@@ -321,6 +322,7 @@ private:
     Q_SLOT void loadSessionData();
     Q_SLOT void saveSessionData();
     Q_SLOT void dumpLog();
+    Q_SLOT void fontSettingsChanged(const TextEditor::FontSettings &settings);
 
 public:
     // stuff in this block should be made private by moving it to
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 54a70bbbee7a760519ce3cc0374b92cf6dbb850c..67788f74ed96c2533c93c016e2599badd0eba0f3 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -72,6 +72,7 @@
 #include <texteditor/basetextmark.h>
 #include <texteditor/itexteditor.h>
 #include <texteditor/texteditorconstants.h>
+#include <texteditor/texteditorplugin.h>
 
 #include <utils/qtcassert.h>
 #include <utils/styledbar.h>
@@ -994,6 +995,11 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *errorMess
     //  Connections
     //
 
+    // TextEditor
+    connect(TextEditor::TextEditorPlugin::instance(),
+        SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
+        m_manager, SLOT(fontSettingsChanged(TextEditor::FontSettings)));
+
     // ProjectExplorer
     connect(sessionManager(), SIGNAL(sessionLoaded()),
        m_manager, SLOT(sessionLoaded()));