diff --git a/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp b/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp
index 618d621bd..a39fe04e9 100644
--- a/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp
+++ b/sources/pyside6/libpysideqml/pysideqmlregistertype.cpp
@@ -187,6 +187,25 @@ static QQmlCustomParser *defaultCustomParserFactory()
     return nullptr;
 }
 
+static void dumpMo(const char *what, const QMetaObject *m)
+{
+    QDebug debug = qDebug();
+    debug.noquote();
+    debug.nospace();
+    debug << what << " =" << (const void*)m <<  " \"" << m->className() << '"';
+    for (auto *s = m->superClass(); s ; s = s->superClass())
+        debug << "    inherits " << s->className();
+    debug << '\n';
+    for (int c = m->classInfoOffset(); c < m->classInfoCount(); ++c) {
+        auto ci = m->classInfo(c);
+        debug  << "  classInfo #" << c << ' ' << ci.name() << ", " << ci.value() << '\n';
+    }
+    for (int p = m->propertyOffset(); p < m->propertyCount(); ++p) {
+        auto pr = m->property(p);
+        debug  << "  property #" << p << ' ' << pr.name() << ", " << pr.typeName() << '\n';
+    }
+}
+
 namespace PySide::Qml {
 
 // Modern (6.7) type registration using RegisterTypeAndRevisions
@@ -194,6 +213,11 @@ namespace PySide::Qml {
 static int qmlRegisterType(PyObject *pyObj, PyObject *pyClassInfoObj,
                            const ImportData &importData)
 {
+    qDebug() << __FUNCTION__ << "o=" << PySide::debugPyObject(pyObj)
+             << PySide::debugPyObject(pyClassInfoObj)
+             << importData.importName
+             << "v="<< importData.majorVersion << importData.minorVersion
+             << "TypeRevision=" << importData.toTypeRevision();
     using namespace Shiboken;
 
     PyTypeObject *pyObjType = reinterpret_cast<PyTypeObject *>(pyObj);
@@ -205,6 +229,10 @@ static int qmlRegisterType(PyObject *pyObj, PyObject *pyClassInfoObj,
     const QMetaObject *classInfoMetaObject = pyObj == pyClassInfoObj
         ? metaObject : PySide::retrieveMetaObject(pyClassInfoObj);
 
+    dumpMo("metaObject", metaObject);
+    if (classInfoMetaObject != metaObject)
+        dumpMo("classInfoMetaObject", classInfoMetaObject);
+
     // Register as simple QObject rather than Qt Quick item.
     // Incref the type object, don't worry about decref'ing it because
     // there's no way to unregister a QML type.
@@ -216,10 +244,16 @@ static int qmlRegisterType(PyObject *pyObj, PyObject *pyClassInfoObj,
     const auto typeId = QMetaType(new QQmlMetaTypeInterface(ptrType));
     const auto listId = QMetaType(new QQmlListMetaTypeInterface(listType, typeId.iface()));
     const int objectSize = static_cast<int>(PySide::getSizeOfQObject(reinterpret_cast<PyTypeObject *>(pyObj)));
+    qDebug() << "QMetaType: " << typeId << ptrType << objectSize << "bytes" << "listId=" << listId;
 
     const auto typeInfo = qmlTypeInfo(pyObj);
+    if (typeInfo)
+        qDebug() << typeInfo->flags;
+    else
+        qDebug("no qmlTypeInfo())");
     const auto attachedInfo = qmlAttachedInfo(pyObjType, typeInfo);
     const auto extendedInfo = qmlExtendedInfo(pyObj, typeInfo);
+    qDebug() << "attachedInfo=" << attachedInfo.factory << "extended=" << extendedInfo.factory;
 
     QList<int> ids;
     QQmlPrivate::RegisterTypeAndRevisions type {
@@ -250,6 +284,8 @@ static int qmlRegisterType(PyObject *pyObj, PyObject *pyClassInfoObj,
     if (!isQuickType) { // values filled by the Quick registration
         // QPyQmlParserStatus inherits QObject, QQmlParserStatus, so,
         // it is found behind the QObject.
+        qDebug() << "QmlParserStatus=" << isQmlParserStatus(metaObject)
+                 <<  "QmlPropertyValueSource=" << isQmlPropertyValueSource(metaObject);
         type.parserStatusCast = isQmlParserStatus(metaObject)
             ? int(sizeof(QObject))
             : QQmlPrivate::StaticCastSelector<QObject, QQmlParserStatus>::cast();
@@ -267,6 +303,7 @@ static int qmlRegisterType(PyObject *pyObj, PyObject *pyClassInfoObj,
         PyErr_Format(PyExc_TypeError, "QML meta type registration of \"%s\" failed.",
                      typeName.constData());
     }
+    qDebug() << __FUNCTION__ <<"returns qmlTypeId=" << qmlTypeId << '\n';
     return qmlTypeId;
 }
 
@@ -275,6 +312,7 @@ int qmlRegisterType(PyObject *pyObj, const char *uri, int versionMajor, int vers
                     const char *qmlName, const char *noCreationReason,
                     bool creatable)
 {
+    qDebug() << '\n' << __FUNCTION__ << "legacy: uri=" << uri << "qmlName=" << qmlName;
     auto *type = checkTypeObject(pyObj, "qmlRegisterType()");
     if (type == nullptr || !PySide::isQObjectDerived(type, true)
         || !setClassInfo(type, qmlElementKey, qmlName))
@@ -646,6 +684,7 @@ static std::optional<SingletonQObjectCreation>
 PyObject *qmlElementMacro(PyObject *pyObj, const char *decoratorName,
                           const QByteArray &typeName)
 {
+    qDebug() << '\n' << __FUNCTION__ << "decorator" << decoratorName << "typeName=" << typeName;
     auto *pyObjType = checkTypeObject(pyObj, decoratorName);
     if (pyObjType == nullptr)
         return nullptr;
