diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 3fbd53d343aab1ab3bf7b2bc39b88924be0a70dd..cbd45842df74b0ef15c47414e0d4b4f1134c98fa 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -60,7 +60,6 @@
 #include <QScreen>
 #include <QStringBuilder>
 #include <QUrl>
-#include <private/qqmlmetatype_p.h>
 #include <private/qquickaccessibleattached_p.h>
 
 QT_BEGIN_NAMESPACE
@@ -184,7 +183,7 @@ bool QQuickWebEngineViewPrivate::contextMenuRequested(const WebEngineContextMenu
         ui()->addMenuSeparator(menu);
         if (QObject* menuExtras = contextMenuExtraItems->create(ui()->creationContextForComponent(contextMenuExtraItems))) {
             menuExtras->setParent(menu);
-            QQmlListReference entries(menu, QQmlMetaType::defaultProperty(menu).name(), qmlEngine(q));
+            QQmlListReference entries(menu, defaultPropertyName(menu), qmlEngine(q));
             if (entries.isValid())
                 entries.append(menuExtras);
         }
diff --git a/src/webengine/ui_delegates_manager.cpp b/src/webengine/ui_delegates_manager.cpp
index 7790d2d55ad0366219c8fef960a004d08ee66552..5c0b0f65e9bbbf4852ddf34e4db77221bef74001 100644
--- a/src/webengine/ui_delegates_manager.cpp
+++ b/src/webengine/ui_delegates_manager.cpp
@@ -52,7 +52,6 @@
 #include <QQmlEngine>
 #include <QQmlProperty>
 #include <QStringBuilder>
-#include <private/qqmlmetatype_p.h>
 
 // Uncomment for QML debugging
 //#define UI_DELEGATES_DEBUG
@@ -94,6 +93,18 @@ static QString getUIDelegatesImportDir(QQmlEngine *engine) {
     return importDir;
 }
 
+const char *defaultPropertyName(QObject *obj)
+{
+    const QMetaObject *metaObject = obj->metaObject();
+
+    int idx = metaObject->indexOfClassInfo("DefaultProperty");
+    if (-1 == idx)
+        return 0;
+
+    QMetaClassInfo info = metaObject->classInfo(idx);
+    return info.value();
+}
+
 MenuItemHandler::MenuItemHandler(QObject *parent)
     : QObject(parent)
 {
@@ -208,7 +219,7 @@ void UIDelegatesManager::addMenuItem(MenuItemHandler *menuItemHandler, const QSt
     QObject *menu = menuItemHandler->parent();
     it->setParent(menu);
 
-    QQmlListReference entries(menu, QQmlMetaType::defaultProperty(menu).name(), qmlEngine(m_view));
+    QQmlListReference entries(menu, defaultPropertyName(menu), qmlEngine(m_view));
     if (entries.isValid())
         entries.append(it);
 }
@@ -222,7 +233,7 @@ void UIDelegatesManager::addMenuSeparator(QObject *menu)
     QObject *sep = menuSeparatorComponent->create(itemContext);
     sep->setParent(menu);
 
-    QQmlListReference entries(menu, QQmlMetaType::defaultProperty(menu).name(), qmlEngine(m_view));
+    QQmlListReference entries(menu, defaultPropertyName(menu), qmlEngine(m_view));
     if (entries.isValid())
         entries.append(sep);
 }
@@ -250,7 +261,7 @@ QObject *UIDelegatesManager::addMenu(QObject *parentMenu, const QString &title,
     } else {
         menu->setParent(parentMenu);
 
-        QQmlListReference entries(parentMenu, QQmlMetaType::defaultProperty(parentMenu).name(), qmlEngine(m_view));
+        QQmlListReference entries(parentMenu, defaultPropertyName(parentMenu), qmlEngine(m_view));
         if (entries.isValid())
             entries.append(menu);
     }
diff --git a/src/webengine/ui_delegates_manager.h b/src/webengine/ui_delegates_manager.h
index 125cacff4133aa0ff4fb0f83181f08f267825215..6f8d8b097490a8d3dd4d2c0ce2c18d439d718f7f 100644
--- a/src/webengine/ui_delegates_manager.h
+++ b/src/webengine/ui_delegates_manager.h
@@ -75,6 +75,7 @@ class QQmlContext;
 class QQuickWebEngineView;
 QT_END_NAMESPACE
 
+const char *defaultPropertyName(QObject *obj);
 
 class MenuItemHandler : public QObject {
 Q_OBJECT