diff --git a/src/libs/qtcreatorcdbext/containers.cpp b/src/libs/qtcreatorcdbext/containers.cpp
index f2cde38d4d62641511a1e3e9a2ad66246cc130ab..ed7d13d837df57ca93cd1a344aa749c1981346be 100644
--- a/src/libs/qtcreatorcdbext/containers.cpp
+++ b/src/libs/qtcreatorcdbext/containers.cpp
@@ -1104,6 +1104,7 @@ AbstractSymbolGroupNodePtrVector containerChildren(SymbolGroupNode *node, int ty
     }
     if (!size)
         return AbstractSymbolGroupNodePtrVector();
+    node->addFlags(SymbolGroupNode::PreSortedChildren);
     const unsigned maxArraySize = ExtensionContext::instance().parameters().maxArraySize;
     if (size > maxArraySize)
         size = maxArraySize;
diff --git a/src/libs/qtcreatorcdbext/symbolgroupnode.cpp b/src/libs/qtcreatorcdbext/symbolgroupnode.cpp
index 6f3e902a898f4cbfd51cec5c66acef5e88266b09..a4f39dd41f4ae6104fa4a39894e89ffb83af7bb7 100644
--- a/src/libs/qtcreatorcdbext/symbolgroupnode.cpp
+++ b/src/libs/qtcreatorcdbext/symbolgroupnode.cpp
@@ -168,7 +168,7 @@ bool AbstractSymbolGroupNode::accept(SymbolGroupNodeVisitor &visitor,
         break;
     case SymbolGroupNodeVisitor::VisitContinue: {
         AbstractSymbolGroupNodePtrVector c = children();
-        if (visitor.sortChildrenAlphabetically()) {
+        if (visitor.sortChildrenAlphabetically() && !testFlags(SymbolGroupNode::PreSortedChildren)) {
             std::sort(c.begin(), c.end(), [](AbstractSymbolGroupNode *a, AbstractSymbolGroupNode *b) {
                 return a->name() < b->name();
             });
diff --git a/src/libs/qtcreatorcdbext/symbolgroupnode.h b/src/libs/qtcreatorcdbext/symbolgroupnode.h
index 3fbbedd7ea6a872a1b14820e8565fa3131435ac2..9d49869dbabebc284f719a8c5de45d9d37fb1586 100644
--- a/src/libs/qtcreatorcdbext/symbolgroupnode.h
+++ b/src/libs/qtcreatorcdbext/symbolgroupnode.h
@@ -230,7 +230,8 @@ public:
         AdditionalSymbol = 0x20, // Introduced by addSymbol, should not be visible
         Obscured = 0x40,    // Symbol is obscured by (for example) fake container children
         ComplexDumperOk = 0x80,
-        WatchNode = 0x100
+        WatchNode = 0x100,
+        PreSortedChildren = 0x200
     };
 
     ~SymbolGroupNode();