diff --git a/share/qtcreator/dumper/dumper.py b/share/qtcreator/dumper/dumper.py
index 57635e8aaab30258abeb9903b128d26670717d65..b73601f1836a21c406625f2f86a8391ef6d2b528 100644
--- a/share/qtcreator/dumper/dumper.py
+++ b/share/qtcreator/dumper/dumper.py
@@ -1346,7 +1346,13 @@ class Dumper:
             return
 
         if type.code == TypedefCode:
-            self.putItem(value.cast(type.strip_typedefs()))
+            type = type.strip_typedefs()
+            # Workaround for http://sourceware.org/bugzilla/show_bug.cgi?id=13380
+            if type.code == ArrayCode:
+                value = parseAndEvaluate("{%s}%s" % (type, value.address))
+            else:
+                value = value.cast(type.strip_typedefs())
+            self.putItem(value)
             self.putBetterType(typeName)
             return
 
diff --git a/tests/manual/debugger/simple/simple_test_app.cpp b/tests/manual/debugger/simple/simple_test_app.cpp
index ce3afcbbf9c53f0e78f813fe0cc743abcf528d2a..4680d71fc47fd205e9755ca8bf65b6a97dc2fda7 100644
--- a/tests/manual/debugger/simple/simple_test_app.cpp
+++ b/tests/manual/debugger/simple/simple_test_app.cpp
@@ -3651,6 +3651,22 @@ namespace cp42895 {
 } // namespace cp
 
 
+namespace bug6465 {
+
+    // https://bugreports.qt.nokia.com/browse/QTCREATORBUG-6465
+
+    void test6465()
+    {
+        typedef char Foo[20];
+        Foo foo = "foo";
+        char bar[20] = "baz";
+        // BREAK HERE
+        dummyStatement(&foo, &bar);
+    }
+
+} // namespace bug6465
+
+
 namespace varargs {
 
     void test(const char *format, ...)
@@ -3814,6 +3830,7 @@ int main(int argc, char *argv[])
     bug5106::test5106();
     bug5184::test5184();
     bug5799::test5799();
+    bug6465::test6465();
 
     application::testApplicationStart(argc, argv);