diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index e9d5c42a90237d6df9199d9cde060740b21fc483..abc050cf4c994fc82a08720473b567cb754ecec5 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -1309,7 +1309,7 @@ QtMessageLogItem *QmlEngine::constructLogItemTree(
             QtMessageLogItem *child = constructLogItemTree(item,
                                                            i.value(), i.key());
             if (child)
-                item->insertChildSorted(child);
+                item->insertChild(child);
         }
     } else if (result.type() == QVariant::List) {
         if (key.isEmpty())
@@ -1321,7 +1321,7 @@ QtMessageLogItem *QmlEngine::constructLogItemTree(
             QtMessageLogItem *child = constructLogItemTree(item, resultList.at(i),
                                                           QString::number(i));
             if (child)
-                item->insertChildSorted(child);
+                item->insertChild(child);
         }
     } else if (result.canConvert(QVariant::String)) {
         item->text = result.toString();
diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
index 58121ddc07283aa1065f6fce7b62efc613499d1e..01910e1bd5c287e964f099ad4dc7ab47deaf691d 100644
--- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
+++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
@@ -995,7 +995,7 @@ QtMessageLogItem *QmlV8DebuggerClientPrivate::constructLogItemTree(
         QtMessageLogItem *child = constructLogItemTree(
                     item, extractData(property, refsVal), refsVal);
         if (child)
-            item->insertChildSorted(child);
+            item->insertChild(child);
     }
 
     return item;
diff --git a/src/plugins/debugger/qtmessageloghandler.cpp b/src/plugins/debugger/qtmessageloghandler.cpp
index 5080d8efc9526d484d20222c545f488665c3ce7e..3ca2d33bfa01b072c0202063d1906636b0c06fd8 100644
--- a/src/plugins/debugger/qtmessageloghandler.cpp
+++ b/src/plugins/debugger/qtmessageloghandler.cpp
@@ -31,6 +31,8 @@
 **************************************************************************/
 
 #include "qtmessageloghandler.h"
+#include "debuggercore.h"
+#include "debuggeractions.h"
 
 #include <utils/qtcassert.h>
 
@@ -94,8 +96,13 @@ bool QtMessageLogItem::insertChildren(int position, int count)
     return true;
 }
 
-void QtMessageLogItem::insertChildSorted(QtMessageLogItem *item)
+void QtMessageLogItem::insertChild(QtMessageLogItem *item)
 {
+    if (!debuggerCore()->boolSetting(SortStructMembers)) {
+        m_childItems.insert(m_childItems.count(), item);
+        return;
+    }
+
     int i = 0;
     for (; i < m_childItems.count(); i++) {
         if (item->text < m_childItems[i]->text) {
diff --git a/src/plugins/debugger/qtmessageloghandler.h b/src/plugins/debugger/qtmessageloghandler.h
index b76d85d043bc3437b0fd58cc9adf071247b52528..6e84f67a18956fdbfd53a999306ab823d324db0d 100644
--- a/src/plugins/debugger/qtmessageloghandler.h
+++ b/src/plugins/debugger/qtmessageloghandler.h
@@ -126,7 +126,7 @@ public:
     QtMessageLogItem *child(int number);
     int childCount() const;
     bool insertChildren(int position, int count);
-    void insertChildSorted(QtMessageLogItem *item);
+    void insertChild(QtMessageLogItem *item);
     bool insertChild(int position, QtMessageLogItem *item);
     QtMessageLogItem *parent();
     bool removeChildren(int position, int count);