diff --git a/share/qtcreator/gdbmacros/dumper.py b/share/qtcreator/gdbmacros/dumper.py
index 98b3ffa4d164959e4552722d21788aed1902bb55..ed1e352f50e6d637a28b44ced70ccdb8f59e7a49 100644
--- a/share/qtcreator/gdbmacros/dumper.py
+++ b/share/qtcreator/gdbmacros/dumper.py
@@ -116,6 +116,12 @@ def call(value, func):
     #warn("  -> %s" % result)
     return result
 
+def qtNamespace():
+    try:
+        type = str(gdb.parse_and_eval("&QString::null").type.target().unqualified())
+        return type[0:len(type) - len("QString::null")]
+    except RuntimeError:
+        return ""
 
 #######################################################################
 #
@@ -146,10 +152,6 @@ class FrameCommand(gdb.Command):
         super(FrameCommand, self).__init__("bb", gdb.COMMAND_OBSCURE)
 
     def invoke(self, arg, from_tty):
-        print('locals={iname="local",name="Locals",value=" ",type=" ",'
-            + 'children=[%s]}' % self.doit(arg).encode("latin1"))
-
-    def doit(self, arg):
         args = arg.split(' ')
         #warn("ARG: %s" % arg)
         #warn("ARGS: %s" % args)
@@ -193,15 +195,8 @@ class FrameCommand(gdb.Command):
         d = Dumper()
         d.dumpers = self.dumpers
         d.passExceptions = passExceptions
+        d.ns = qtNamespace()
         block = frame.block()
-
-        # initialize namespace
-        try:
-            type = str(gdb.parse_and_eval("&QString::null").type.target().unqualified())
-            d.ns = type[0:len(type) - len("QString::null")]
-        except RuntimeError:
-            d.ns = ""
-
         #warn(" NAMESPACE IS: '%s'" % d.ns)
         #warn("FRAME %s: " % frame)
 
@@ -244,9 +239,12 @@ class FrameCommand(gdb.Command):
                 break
 
             block = block.superblock
+            #warn("BLOCK %s: " % block)
 
         d.pushOutput()
-        return d.safeoutput
+
+        print('locals={iname="local",name="Locals",value=" ",type=" ",'
+            + 'children=[%s]}' % d.safeoutput)
 
 FrameCommand()
 
diff --git a/share/qtcreator/gdbmacros/gdbmacros.py b/share/qtcreator/gdbmacros/gdbmacros.py
index 2ed5cef9c353368ad1a15b4e7bfef673933b8297..fb0742f6c8e4a424413389b98a489f44cd185649 100644
--- a/share/qtcreator/gdbmacros/gdbmacros.py
+++ b/share/qtcreator/gdbmacros/gdbmacros.py
@@ -2029,10 +2029,32 @@ def qqDumpStdVector(d, item):
         d.endChildren()
 
 
-# needed
-#gdb.pretty_printers.append(QStringPrinter)
+def qqDumpstd__deque(d, item):
+    qqDumpStdDeque(d, item)
 
-#gdb.pretty_printers["^QStringList$"] = QStringPrinter
-#gdb.pretty_printers["^myns::QList<myns::QString>$"] = QStringPrinter
-#gdb.pretty_printers["^myns::QCoreApplication$"] = QStringPrinter
+def qqDumpstd__list(d, item):
+    qqDumpStdList(d, item)
 
+def qqDumpstd__map(d, item):
+    qqDumpStdMap(d, item)
+
+def qqDumpstd__set(d, item):
+    qqDumpStdSet(d, item)
+
+def qqDumpstd__vector(d, item):
+    qqDumpStdVector(d, item)
+
+def qqDumpstring(d, item):
+    qqDumpStdString(d, item)
+
+def qqDumpstd__string(d, item):
+    qqDumpStdString(d, item)
+
+def qqDumpstd__wstring(d, item):
+    qqDumpStdString(d, item)
+
+def qqDumpstd__basic_string(d, item):
+    qqDumpStdString(d, item)
+
+def qqDumpwstring(d, item):
+    qqDumpStdString(d, item)
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index de9bd3b0c766caa4ed952571e49fd05bdb61c2b8..c45eaa4116ba28e6652e90a01299c637a1d2fb95 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -605,10 +605,10 @@ static QString niceTypeHelper(const QString typeIn)
 QString WatchModel::niceType(const QString &typeIn) const
 {
     QString type = niceTypeHelper(typeIn);
-    if (theDebuggerBoolSetting(ShowStdNamespace))
+    if (!theDebuggerBoolSetting(ShowStdNamespace))
         type = type.remove("std::");
     IDebuggerEngine *engine = m_handler->m_manager->currentEngine();
-    if (engine && theDebuggerBoolSetting(ShowQtNamespace))
+    if (engine && !theDebuggerBoolSetting(ShowQtNamespace))
         type = type.remove(engine->qtNamespace());
     return type;
 }