diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp
index 0a281d4fbcf70efdfc42e2f881c2930e133cb60e..75e84b962054a6a97eacd7b670272b0082244c25 100644
--- a/src/plugins/debugger/debuggeractions.cpp
+++ b/src/plugins/debugger/debuggeractions.cpp
@@ -509,6 +509,11 @@ DebuggerSettings *theDebuggerSettings()
     item->setSettingsKey("DebugMode", "BuildDumpersOnTheFly");
     item->setCheckable(true);
 
+    item = new DebuggerAction(instance);
+    instance->insertItem(UseQtDumpers, item);
+    item->setSettingsKey("DebugMode", "UseQtDumpers");
+    item->setCheckable(true);
+
     item = new DebuggerAction(instance);
     instance->insertItem(UsePrebuiltDumpers, item);
     item->setSettingsKey("DebugMode", "UsePrebuiltDumpers");
diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h
index 75029ab9526e1d492432e4ea0aa09914ed1a2893..5d7e5354d239c332baab76fb0a0d002f0b2fc31b 100644
--- a/src/plugins/debugger/debuggeractions.h
+++ b/src/plugins/debugger/debuggeractions.h
@@ -155,6 +155,7 @@ enum DebuggerActionCode
 
     RecheckDumpers,
     UsePrebuiltDumpers,
+    UseQtDumpers,
     PrebuiltDumpersLocation,
     BuildDumpersOnTheFly,
     UseDumpers,
diff --git a/src/plugins/debugger/debuggermanager.h b/src/plugins/debugger/debuggermanager.h
index 414ef429631d8c588283e6be5574d86a3c4b36e1..4d9351d951d459ccd5fe0f565f4c52eb89841dc8 100644
--- a/src/plugins/debugger/debuggermanager.h
+++ b/src/plugins/debugger/debuggermanager.h
@@ -331,6 +331,7 @@ public:
     QString m_workingDir;
     QString m_buildDir;
     QStringList m_processArgs;
+    QString m_dumperLib;
     int m_attachedPID;
     bool m_useTerminal;
 
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index cc3c0f01d7f80b86e1917edf5bf60e7a54d25a3c..34152a52ca5bff419fb17cb495e78b94f44627f6 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -381,6 +381,8 @@ QWidget *DumperOptionPage::createPage(QWidget *parent)
     connect(m_ui.radioButtonUsePrebuiltDumpers, SIGNAL(toggled(bool)),
         m_ui.dumperLocationChooser, SLOT(setEnabled(bool)));
 
+    theDebuggerAction(UseQtDumpers)
+        ->connectWidget(m_ui.radioButtonUseQtDumpers);
     theDebuggerAction(UsePrebuiltDumpers)
         ->connectWidget(m_ui.radioButtonUsePrebuiltDumpers);
     theDebuggerAction(BuildDumpersOnTheFly)
@@ -414,6 +416,7 @@ void DumperOptionPage::apply()
     QSettings *s = ICore::instance()->settings();
 
     theDebuggerAction(UseDumpers)->apply(s);
+    theDebuggerAction(UseQtDumpers)->apply(s);
     theDebuggerAction(UsePrebuiltDumpers)->apply(s);
     theDebuggerAction(BuildDumpersOnTheFly)->apply(s);
     theDebuggerAction(PrebuiltDumpersLocation)->apply(s);
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp
index e5eefdc096e102576e64e730c13d66a259a10e51..0153ef67531aa240036ace56dbe1f937e99f517f 100644
--- a/src/plugins/debugger/debuggerrunner.cpp
+++ b/src/plugins/debugger/debuggerrunner.cpp
@@ -128,6 +128,7 @@ void DebuggerRunControl::start()
     m_manager->m_environment = rc->environment().toStringList();
     m_manager->m_workingDir = rc->workingDirectory();
     m_manager->m_processArgs = rc->commandLineArguments();
+    m_manager->m_dumperLib = rc->dumperLibrary();
     m_manager->m_buildDir =
         project->buildDirectory(project->activeBuildConfiguration());
     m_manager->m_useTerminal = rc->runMode() == ApplicationRunConfiguration::Console;
diff --git a/src/plugins/debugger/dumperoptionpage.ui b/src/plugins/debugger/dumperoptionpage.ui
index 0219fe898b5acec3b5ad85d1ca9a6ec6cf997658..ce65d701f461a43e01b0ef7a0a6a4fe358bbce01 100644
--- a/src/plugins/debugger/dumperoptionpage.ui
+++ b/src/plugins/debugger/dumperoptionpage.ui
@@ -21,6 +21,13 @@
      </property>
      <layout class="QGridLayout" name="gridLayout">
       <item row="0" column="0">
+       <widget class="QRadioButton" name="radioButtonUseQtDumpers">
+        <property name="text">
+         <string>Use Qt dumpers</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0">
        <widget class="QRadioButton" name="radioButtonBuildDumpersOnTheFly">
         <property name="toolTip">
          <string>This is the slowest but safest option.</string>
@@ -30,14 +37,14 @@
         </property>
        </widget>
       </item>
-      <item row="1" column="0">
+      <item row="2" column="0">
        <widget class="QRadioButton" name="radioButtonUsePrebuiltDumpers">
         <property name="text">
          <string>Load pre-built data dumpers</string>
         </property>
        </widget>
       </item>
-      <item row="2" column="0">
+      <item row="3" column="0">
        <layout class="QHBoxLayout" name="horizontalLayout">
         <item>
          <spacer name="horizontalSpacer">
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index e34d8c50290cd7f4743895a9106e49b9d255eb22..1e92a07cb5b2e63da1fd50588b34a85939eb36e1 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -3993,6 +3993,8 @@ QString GdbEngine::dumperLibraryName() const
 {
     if (theDebuggerAction(UsePrebuiltDumpers)->value().toBool())
         return theDebuggerAction(PrebuiltDumpersLocation)->value().toString();
+    if (theDebuggerAction(UseQtDumpers)->value().toBool())
+        return q->m_dumperLib;
 #if defined(Q_OS_WIN)
     return q->m_buildDir + "/qtc-gdbmacros/debug/gdbmacros.dll";
 #elif defined(Q_OS_MAC)
@@ -4010,6 +4012,7 @@ void GdbEngine::tryLoadCustomDumpers()
     PENDING_DEBUG("TRY LOAD CUSTOM DUMPERS");
     m_dataDumperState = DataDumperUnavailable;
     QString lib = dumperLibraryName();
+    //qDebug() << "DUMPERLIB: " << lib;
 
     if (!QFileInfo(lib).exists()) {
         debugMessage(QString("DEBUG HELPER LIBRARY IS NOT USABLE: "
diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp
index c679857ab88879ee43f102092b2019d1dcfde6e1..993bd1a914a53c78015db8f5c1918010c53156f0 100644
--- a/src/plugins/debugger/watchutils.cpp
+++ b/src/plugins/debugger/watchutils.cpp
@@ -38,7 +38,7 @@ namespace Internal {
 
 QString dotEscape(QString str)
 {
-    const QChar dot = QLatin1Char(',');
+    const QChar dot = QLatin1Char('.');
     str.replace(QLatin1Char(' '), dot);
     str.replace(QLatin1Char('\\'), dot);
     str.replace(QLatin1Char('/'), dot);
diff --git a/tests/manual/gdbdebugger/simple/app.cpp b/tests/manual/gdbdebugger/simple/app.cpp
index 6ab3cd96901caadc6e28da0bee8b5d94a042b7f5..4115a49a50853b155ed20815b97609922075f05b 100644
--- a/tests/manual/gdbdebugger/simple/app.cpp
+++ b/tests/manual/gdbdebugger/simple/app.cpp
@@ -710,7 +710,6 @@ void testQString()
     str += " World ";
     str += " World ";
     str += " World ";
-    str.append(s);
 }
 
 void testQString3()