diff --git a/share/qtcreator/dumper/qttypes.py b/share/qtcreator/dumper/qttypes.py
index d5ea22fa07b84028d43338440f4f04d6546f7df1..fa052095ec7626d0060ccaa5742fe6df6ee6184a 100644
--- a/share/qtcreator/dumper/qttypes.py
+++ b/share/qtcreator/dumper/qttypes.py
@@ -1959,8 +1959,9 @@ def qdump__std__vector(d, value):
     if isBool:
         start = impl["_M_start"]["_M_p"]
         finish = impl["_M_finish"]["_M_p"]
-        # FIXME: 32 is sizeof(unsigned long) * CHAR_BIT
-        storagesize = 32
+        # FIXME: 8 is CHAR_BIT
+        storage = lookupType("unsigned long")
+        storagesize = storage.sizeof * 8
         size = (finish - start) * storagesize
         size += impl["_M_finish"]["_M_offset"]
         size -= impl["_M_start"]["_M_offset"]
diff --git a/tests/manual/debugger/simple/simple_test_app.cpp b/tests/manual/debugger/simple/simple_test_app.cpp
index 6c01c1c19c1eb6d80dac5a47f6bd6797fe1f0bb5..a2adddf1fded917ede3e905c4e2311e59b3d61e0 100644
--- a/tests/manual/debugger/simple/simple_test_app.cpp
+++ b/tests/manual/debugger/simple/simple_test_app.cpp
@@ -2267,7 +2267,7 @@ namespace stdarray {
     void testStdArray()
     {
         #if USE_CXX11
-        std::array<int, 4> a = { 1, 2, 3, 4};
+        std::array<int, 4> a = { { 1, 2, 3, 4} };
         BREAK_HERE;
         // Expand a.
         // Check a <4 items> std::array<int>.
@@ -3016,7 +3016,6 @@ namespace stdvector {
 
     void testStdVector3()
     {
-        Foo f;
         std::vector<Foo *> v;
         v.push_back(new Foo(1));
         v.push_back(0);
@@ -3050,7 +3049,7 @@ namespace stdvector {
         dummyStatement(&v);
     }
 
-    void testStdVector5()
+    void testStdVectorBool1()
     {
         std::vector<bool> v;
         v.push_back(true);
@@ -3070,6 +3069,24 @@ namespace stdvector {
         dummyStatement(&v);
     }
 
+    void testStdVectorBool2()
+    {
+        std::vector<bool> v1(50, true);
+        std::vector<bool> v2(65);
+        BREAK_HERE;
+        // Expand v1.
+        // Expand v2.
+        // Check v1 <50 items> std::vector<bool>.
+        // Check v2 <65 items> std::vector<bool>.
+        // Check v.0 1 bool.
+        // Check v.1 0 bool.
+        // Check v.2 0 bool.
+        // Check v.3 1 bool.
+        // Check v.4 0 bool.
+        // Continue.
+        dummyStatement(&v1, &v2);
+    }
+
     void testStdVector6()
     {
         std::vector<std::list<int> *> vector;
@@ -3098,7 +3115,8 @@ namespace stdvector {
         testStdVector2();
         testStdVector3();
         testStdVector4();
-        testStdVector5();
+        testStdVectorBool1();
+        testStdVectorBool2();
         testStdVector6();
     }
 
@@ -4135,6 +4153,7 @@ void testMemoryView()
     int a[20];
     for (int i = 0; i != 20; ++i)
         a[i] = i;
+    dummyStatement(&a);
 }
 
 QString fooxx()
@@ -5018,7 +5037,7 @@ namespace qscript {
         // Check x 33 int.
         // Check x1 "34" QString.
         // Continue.
-        dummyStatement(&x1, &v, &s, &d);
+        dummyStatement(&x1, &v, &s, &d, &x);
     #else
         dummyStatement();
     #endif