diff --git a/examples/activeqt/qutlook/addressview.cpp b/examples/activeqt/qutlook/addressview.cpp
index fd1e0d3..54973dd 100644
--- a/examples/activeqt/qutlook/addressview.cpp
+++ b/examples/activeqt/qutlook/addressview.cpp
@@ -53,6 +53,41 @@
 #include "msoutl.h"
 #include <QtWidgets>
 
+static void dumpMO(QDebug &dbg, const QMetaObject *o, int d = 0)
+{
+    const int methOffs = o->methodOffset();
+    const int methCount = o->methodCount();
+    auto indent = QByteArray(d, ' ');
+    dbg << indent << o->className() << " methodOffset=" << methOffs
+        << ", methodCount=" << methCount << QLatin1Char('\n');
+    int m = 0;
+    int printMethCount = qMin(methOffs + 100, methCount);
+    for ( ; m < printMethCount; ++m) {
+        auto mt = o->method(m);
+        dbg << indent << m << ' ' << (m == methOffs ? "->" : "  ")
+            << mt.methodSignature() << " t=" << mt.methodType() << '\n';
+    }
+    if (m < methCount)
+        dbg << indent << "....\n";
+
+    const int propOffs = o->propertyOffset();
+    const int propCount = o->propertyCount();
+    dbg << o->className() << " propertyOffset=" << propOffs
+        << ", propertyCount=" << propCount << "\n";
+    int p = 0;
+    int printPropCount = qMin(propOffs + 100, propCount);
+    for ( ; p < printPropCount; ++p) {
+        auto mp = o->property(p);
+        dbg << indent << p << ' ' << (p == propOffs ? "->" : "  ")
+            << mp.name() << '/' << mp.typeName() << '\n';
+    }
+    if (p < propCount)
+        dbg << indent << "....\n";
+
+    if (auto p = o->superClass())
+         dumpMO(dbg, p, d + 2);
+}
+
 class AddressBookModel : public QAbstractListModel
 {
 public:
@@ -79,10 +114,21 @@ private:
 AddressBookModel::AddressBookModel(AddressView *parent)
 : QAbstractListModel(parent)
 {
+    qDebug() << __FUNCTION__ << outlook.isNull();
     if (!outlook.isNull()) {
         Outlook::NameSpace session(outlook.Session());
+        {
+            QDebug d = qDebug().noquote().nospace();
+            dumpMO(d, session.metaObject());
+        }
+
         session.Logon();
         Outlook::MAPIFolder *folder = session.GetDefaultFolder(Outlook::olFolderContacts);
+        {
+            QDebug d = qDebug().noquote().nospace();
+            dumpMO(d, folder->metaObject());
+        }
+
         contactItems = new Outlook::Items(folder->Items());
         connect(contactItems, SIGNAL(ItemAdd(IDispatch*)), parent, SLOT(updateOutlook()));
         connect(contactItems, SIGNAL(ItemChange(IDispatch*)), parent, SLOT(updateOutlook()));
@@ -258,6 +304,7 @@ AddressView::AddressView(QWidget *parent)
 
 void AddressView::updateOutlook()
 {
+    qDebug() << __FUNCTION__ ;
     model->update();
 }
 
diff --git a/examples/activeqt/qutlook/main.cpp b/examples/activeqt/qutlook/main.cpp
index 6aaa5ea..3c3f6b8 100644
--- a/examples/activeqt/qutlook/main.cpp
+++ b/examples/activeqt/qutlook/main.cpp
@@ -51,11 +51,14 @@
 //! [0]
 #include "addressview.h"
 #include <QApplication>
+#include <QMessageBox>
+#include <QDebug>
+#include <QLibraryInfo>
 
 int main(int argc, char *argv[])
 {
     QApplication a(argc, argv);
-
+    qDebug() << QLibraryInfo::build();
     AddressView view;
     view.setWindowTitle(QObject::tr("Qt Example - Looking at Outlook"));
     view.show();
diff --git a/examples/activeqt/qutlook/qutlook.pro b/examples/activeqt/qutlook/qutlook.pro
index 3482e1c..6685bfe 100644
--- a/examples/activeqt/qutlook/qutlook.pro
+++ b/examples/activeqt/qutlook/qutlook.pro
@@ -2,7 +2,7 @@
 TEMPLATE = app
 TARGET   = qutlook
 QT += widgets axcontainer
-
+CONFIG += console
 TYPELIBS = $$system(dumpcpp -getfile {00062FFF-0000-0000-C000-000000000046})
 #! [0]
 
diff --git a/src/activeqt/container/qaxbase.cpp b/src/activeqt/container/qaxbase.cpp
index 9c0e0d9..ffc5d87 100644
--- a/src/activeqt/container/qaxbase.cpp
+++ b/src/activeqt/container/qaxbase.cpp
@@ -3473,9 +3473,11 @@ static bool checkHRESULT(HRESULT hres, EXCEPINFO *exc, QAxBase *that, const QStr
 */
 int QAxBase::internalProperty(QMetaObject::Call call, int index, void **v)
 {
+
     const QMetaObject *mo = metaObject();
     const QMetaProperty prop = mo->property(index + mo->propertyOffset());
     QByteArray propname = prop.name();
+    qDebug() << __FUNCTION__ << mo->className() << propname;
 
     // hardcoded control property
     if (propname == "control") {
@@ -3496,20 +3498,30 @@ int QAxBase::internalProperty(QMetaObject::Call call, int index, void **v)
     }
 
     // get the IDispatch
-    if (!d->ptr || !prop.isValid())
+    if (!d->ptr || !prop.isValid()) {
+        qDebug()  << __FUNCTION__ << "r1 d->ptr || !prop.isValid()";
         return index;
+    }
+    qDebug()  << __FUNCTION__ << "Calling d->dispatch()" <<  propname;
     IDispatch *disp = d->dispatch();
-    if (!disp)
+    if (!disp) {
+        qDebug()  << __FUNCTION__ << "r1 !disp";
         return index;
+    }
 
+    qDebug()  << __FUNCTION__ << "Calling dispIDofName" <<  propname;
     DISPID dispid = d->metaObject()->dispIDofName(propname, disp);
-    if (dispid == DISPID_UNKNOWN)
+    if (dispid == DISPID_UNKNOWN) {
+        qDebug()  << __FUNCTION__ << "r1 DISPID_UNKNOWN";
         return index;
+    }
 
     Q_ASSERT(d->metaobj);
     // property found, so everthing that goes wrong now should not bother the caller
     index -= mo->propertyCount();
 
+    qDebug()  << __FUNCTION__ << "index=" << index << " mo->propertyCount()="
+              <<  mo->propertyCount();
     VARIANTARG arg;
     VariantInit(&arg);
     DISPPARAMS params;
@@ -3596,9 +3608,12 @@ int QAxBase::internalInvoke(QMetaObject::Call call, int index, void **v)
         return index;
 
     const QMetaObject *mo = metaObject();
+
     // get the slot information
     const QMetaMethod slot = mo->method(index + mo->methodOffset());
     Q_ASSERT(slot.methodType() == QMetaMethod::Slot);
+    qDebug() << __FUNCTION__ << mo->className() << call << index << slot.name();
+
 
     QByteArray signature(slot.methodSignature());
     QByteArray slotname(signature);
@@ -3682,6 +3697,7 @@ int QAxBase::internalInvoke(QMetaObject::Call call, int index, void **v)
     // get return value
     if (hres == S_OK && ret.vt != VT_EMPTY) {
         QVariantToVoidStar(VARIANTToQVariant(ret, slot.typeName()), v[0], slot.typeName());
+        qDebug() << "clearVARIANT"<< hex << ret.vt;
         clearVARIANT(&ret);
     }
 
@@ -3733,6 +3749,7 @@ int QAxBase::qt_static_metacall(QAxBase *_t, QMetaObject::Call _c, int _id, void
 */
 int QAxBase::qt_metacall(QMetaObject::Call call, int id, void **v)
 {
+    qDebug() << __FUNCTION__ << className() << call << id;
     const QMetaObject *mo = metaObject();
     if (isNull() && mo->property(id + mo->propertyOffset()).name() != QByteArray("control")) {
         qWarning("QAxBase::qt_metacall: Object is not initialized, or initialization failed");
@@ -3747,6 +3764,7 @@ int QAxBase::qt_metacall(QMetaObject::Call call, int id, void **v)
     case QMetaObject::WriteProperty:
     case QMetaObject::ResetProperty:
         id = internalProperty(call, id, v);
+        qDebug() << __FUNCTION__ << id << "internalProperty";
         break;
     case QMetaObject::QueryPropertyScriptable:
     case QMetaObject::QueryPropertyDesignable:
