diff --git a/sources/pyside2/libpyside/dynamicqmetaobject.cpp b/sources/pyside2/libpyside/dynamicqmetaobject.cpp
index 2fbda3f6..37b9f9af 100644
--- a/sources/pyside2/libpyside/dynamicqmetaobject.cpp
+++ b/sources/pyside2/libpyside/dynamicqmetaobject.cpp
@@ -53,6 +53,7 @@
 #include <QtCore/QStringList>
 #include <QtCore/QTextStream>
 #include <QtCore/QVector>
+#include <QtCore/QDebug>
 #include <private/qmetaobjectbuilder_p.h>
 
 #include <cstring>
@@ -538,6 +539,7 @@ void MetaObjectBuilderPrivate::parsePythonType(PyTypeObject *type)
                 // Register slots.
                 if (PyObject_HasAttr(value, slotAttrName)) {
                     PyObject *signatureList = PyObject_GetAttr(value, slotAttrName);
+                    qDebug() << __FUNCTION__ << PyList_Size(signatureList) << "slots";
                     for (Py_ssize_t i = 0, i_max = PyList_Size(signatureList); i < i_max; ++i) {
                         PyObject *pySignature = PyList_GET_ITEM(signatureList, i);
                         QByteArray signature(String::toCString(pySignature));
@@ -549,6 +551,7 @@ void MetaObjectBuilderPrivate::parsePythonType(PyTypeObject *type)
                             signature.remove(0, spacePos + 1);
                         }
                         const int index = m_baseObject->indexOfSlot(signature);
+                        qDebug() << __FUNCTION__ << '#' << index << signature << type;
                         if (index == -1) {
                             if (type.isEmpty() || type == "void")
                                 addSlot(signature);
diff --git a/sources/pyside2/libpyside/globalreceiverv2.cpp b/sources/pyside2/libpyside/globalreceiverv2.cpp
index 0377f769..c6b4b811 100644
--- a/sources/pyside2/libpyside/globalreceiverv2.cpp
+++ b/sources/pyside2/libpyside/globalreceiverv2.cpp
@@ -47,6 +47,7 @@
 
 #include <QtCore/QMetaMethod>
 #include <QtCore/QSet>
+#include <QtCore/QDebug>
 
 #define RECEIVER_DESTROYED_SLOT_NAME "__receiverDestroyed__(QObject*)"
 
@@ -93,6 +94,7 @@ using namespace PySide;
 DynamicSlotDataV2::DynamicSlotDataV2(PyObject *callback, GlobalReceiverV2 *parent)
     : m_pythonSelf(0), m_pyClass(0), m_weakRef(0), m_parent(parent)
 {
+    qDebug() << __FUNCTION__ ;
     Shiboken::GilState gil;
 
     m_isMethod = PyMethod_Check(callback);
@@ -159,6 +161,7 @@ int DynamicSlotDataV2::id(const char *signature) const
 
 int DynamicSlotDataV2::addSlot(const char *signature)
 {
+    qDebug() << "DynamicSlotDataV2" << __FUNCTION__ << signature;
     int index = id(signature);
     if (index == -1)
         index = m_signatures[signature] = m_parent->metaObjectBuilder().addSlot(signature);
@@ -224,6 +227,7 @@ GlobalReceiverV2::~GlobalReceiverV2()
 
 int GlobalReceiverV2::addSlot(const char *signature)
 {
+    qDebug() << "GlobalReceiverV2" << __FUNCTION__ << signature;
     return m_data->addSlot(signature);
 }
 
diff --git a/sources/pyside2/libpyside/pyside.cpp b/sources/pyside2/libpyside/pyside.cpp
index 66e93116..ccc72eee 100644
--- a/sources/pyside2/libpyside/pyside.cpp
+++ b/sources/pyside2/libpyside/pyside.cpp
@@ -350,7 +350,10 @@ PyObject *getMetaDataFromQObject(QObject *cppSelf, PyObject *self, PyObject *nam
                         if (func) {
                             PyObject *result = reinterpret_cast<PyObject *>(func);
                             PyObject_SetAttr(self, name, result);
+                            qDebug() << __FUNCTION__ <<  "new PySideMetaFunction "
+                                         << methSig_ <<i << "self=" << result;
                             return result;
+
                         }
                     }
                 }
diff --git a/sources/pyside2/libpyside/pysidemetafunction.cpp b/sources/pyside2/libpyside/pysidemetafunction.cpp
index f4b95385..35601710 100644
--- a/sources/pyside2/libpyside/pysidemetafunction.cpp
+++ b/sources/pyside2/libpyside/pysidemetafunction.cpp
@@ -44,6 +44,7 @@
 #include <signature.h>
 
 #include <QtCore/QMetaMethod>
+#include <QtCore/QDebug>
 
 extern "C"
 {
@@ -92,6 +93,7 @@ PyObject *functionCall(PyObject *self, PyObject *args, PyObject * /* kw */)
     PySideMetaFunction *function = reinterpret_cast<PySideMetaFunction *>(self);
 
     PyObject *retVal;
+    qDebug() << __FUNCTION__ << function->d->qobject << function->d->methodIndex;
     if (!PySide::MetaFunction::call(function->d->qobject, function->d->methodIndex, args, &retVal))
         return 0;
     return retVal;
@@ -134,6 +136,7 @@ PySideMetaFunction *newObject(QObject *source, int methodIndex)
 bool call(QObject *self, int methodIndex, PyObject *args, PyObject **retVal)
 {
 
+    qDebug() << __FUNCTION__ << self << methodIndex;
     QMetaMethod method = self->metaObject()->method(methodIndex);
     QList<QByteArray> argTypes = method.parameterTypes();
 
@@ -204,6 +207,7 @@ bool call(QObject *self, int methodIndex, PyObject *args, PyObject **retVal)
     bool ok = i == numArgs;
     if (ok) {
         Py_BEGIN_ALLOW_THREADS
+        qDebug() << __FUNCTION__ << self << method.methodIndex();
         QMetaObject::metacall(self, QMetaObject::InvokeMetaMethod, method.methodIndex(), methArgs);
         Py_END_ALLOW_THREADS
 
diff --git a/sources/pyside2/libpyside/pysideslot.cpp b/sources/pyside2/libpyside/pysideslot.cpp
index 7bfd1719..25b6881b 100644
--- a/sources/pyside2/libpyside/pysideslot.cpp
+++ b/sources/pyside2/libpyside/pysideslot.cpp
@@ -45,6 +45,7 @@
 
 #include <QtCore/QMetaObject>
 #include <QtCore/QString>
+#include <QtCore/QDebug>
 #include <signature.h>
 
 using namespace Shiboken;
@@ -127,6 +128,7 @@ int slotTpInit(PyObject *self, PyObject *args, PyObject *kw)
 
     data->slotData->resultType = argResult
         ? PySide::Signal::getTypeName(argResult) : PySide::Signal::voidType();
+    qDebug() << __FUNCTION__ << "slot" << data->slotData->resultType  << "N" << data->slotData->name << "Args" << data->slotData->args;
 
     return 0;
 }
@@ -138,8 +140,10 @@ PyObject *slotCall(PyObject *self, PyObject *args, PyObject * /* kw */)
     callback = PyTuple_GetItem(args, 0);
     Py_INCREF(callback);
 
+    qDebug() << __FUNCTION__ << '>';
     if (Py_TYPE(callback)->tp_call != nullptr) {
         PySideSlot *data = reinterpret_cast<PySideSlot *>(self);
+         qDebug() << __FUNCTION__ << "recreating";
 
         if (!data->slotData)
             data->slotData = new SlotData;
@@ -148,7 +152,9 @@ PyObject *slotCall(PyObject *self, PyObject *args, PyObject * /* kw */)
             // PYSIDE-198: Use PyObject_GetAttr instead of PepFunction_GetName to support Nuitka.
             AutoDecRef funcName(PyObject_GetAttr(callback, PyMagicName::name()));
             data->slotData->name = String::toCString(funcName);
+            qDebug() << __FUNCTION__ << "empty name" << data->slotData->name;
         }
+        qDebug() << __FUNCTION__ << "slot" << data->slotData->resultType  << "N" << data->slotData->name << "Args" << data->slotData->args;
         const QByteArray returnType = QMetaObject::normalizedType(data->slotData->resultType);
         const QByteArray signature =
             returnType + ' ' + data->slotData->name + '(' + data->slotData->args + ')';
@@ -157,12 +163,16 @@ PyObject *slotCall(PyObject *self, PyObject *args, PyObject * /* kw */)
             pySlotName = String::fromCString(PYSIDE_SLOT_LIST_ATTR);
 
         PyObject *pySignature = String::fromCString(signature);
+        qDebug() << __FUNCTION__ <<  "rett" << returnType << "sig" << signature
+                 << "pySlotName=" <<  _PepUnicode_AsString(pySlotName);
         PyObject *signatureList = 0;
         if (PyObject_HasAttr(callback, pySlotName)) {
             signatureList = PyObject_GetAttr(callback, pySlotName);
+            qDebug() << __FUNCTION__ <<  "retrieved sig list";
         } else {
             signatureList = PyList_New(0);
             PyObject_SetAttr(callback, pySlotName, signatureList);
+            qDebug() << __FUNCTION__ <<  "set sig list";
             Py_DECREF(signatureList);
         }
 
@@ -173,7 +183,14 @@ PyObject *slotCall(PyObject *self, PyObject *args, PyObject * /* kw */)
         delete data->slotData;
         data->slotData = nullptr;
         return callback;
+    } else {
+        PySideSlot *data = reinterpret_cast<PySideSlot *>(self);
+        qDebug() << __FUNCTION__ << "existing";
+        if (data)
+            qDebug() << __FUNCTION__ << "slot" << data->slotData->resultType  << "N" << data->slotData->name << "Args" << data->slotData->args;
+
     }
+    qDebug() << __FUNCTION__ << '<';
     return callback;
 }
 
diff --git a/sources/pyside2/libpyside/signalmanager.cpp b/sources/pyside2/libpyside/signalmanager.cpp
index 93847e06..f10b870c 100644
--- a/sources/pyside2/libpyside/signalmanager.cpp
+++ b/sources/pyside2/libpyside/signalmanager.cpp
@@ -51,6 +51,7 @@
 #include <basewrapper.h>
 #include <bindingmanager.h>
 #include <gilstate.h>
+#include <helper.h>
 #include <sbkconverter.h>
 #include <sbkstring.h>
 #include <sbkstaticstrings.h>
@@ -59,6 +60,7 @@
 #include <QtCore/QHash>
 
 #include <algorithm>
+#include <iostream>
 #include <limits>
 
 // These private headers are needed to throw JavaScript exceptions
@@ -422,6 +424,7 @@ int SignalManager::qt_metacall(QObject *object, QMetaObject::Call call, int id,
             break;
 #endif
         case QMetaObject::InvokeMetaMethod:
+            qDebug() << "SignalManager::qt_metacall(InvokeMetaMethod" <<  object<<  id;
             id = callMethod(object, id, args);
             break;
 
@@ -518,6 +521,7 @@ int SignalManager::callPythonMetaMethod(const QMetaMethod &method, void **args,
 
     Shiboken::GilState gil;
     PyObject *pyArguments = nullptr;
+    qDebug() << "SignalManager:" << __FUNCTION__ << method.name() << "isShortCuit=" << isShortCuit;
 
     if (isShortCuit){
         pyArguments = reinterpret_cast<PyObject *>(args[1]);
@@ -536,7 +540,9 @@ int SignalManager::callPythonMetaMethod(const QMetaMethod &method, void **args,
             }
         }
 
+        qDebug() << "SignalManager:" << __FUNCTION__ << ">Calling";
         Shiboken::AutoDecRef retval(PyObject_CallObject(pyMethod, pyArguments));
+        qDebug() << "SignalManager:" << __FUNCTION__ << "<Calling";
 
         if (!isShortCuit && pyArguments){
             Py_DECREF(pyArguments);
@@ -588,6 +594,7 @@ int SignalManager::registerMetaMethodGetIndex(QObject *source, const char *signa
     }
     const QMetaObject *metaObject = source->metaObject();
     int methodIndex = metaObject->indexOfMethod(signature);
+    qDebug() << __FUNCTION__ <<  source << signature;
     // Create the dynamic signal is needed
     if (methodIndex == -1) {
         SbkObject *self = Shiboken::BindingManager::instance().retrieveWrapper(source);
@@ -644,6 +651,7 @@ namespace {
 
 static int callMethod(QObject *object, int id, void **args)
 {
+    static int n = 0;
     const QMetaObject *metaObject = object->metaObject();
     QMetaMethod method = metaObject->method(id);
 
@@ -655,8 +663,15 @@ static int callMethod(QObject *object, int id, void **args)
         auto self = reinterpret_cast<PyObject *>(Shiboken::BindingManager::instance().retrieveWrapper(object));
         QByteArray methodName = method.methodSignature();
         methodName.truncate(methodName.indexOf('('));
+        qDebug() << __FUNCTION__ << "id=" << id << method.methodSignature() << "methodName=" << methodName;
         Shiboken::AutoDecRef pyMethod(PyObject_GetAttrString(self, methodName));
-        return SignalManager::callPythonMetaMethod(method, args, pyMethod, false);
+        std::cerr << __FUNCTION__ << ' ' << "obj self=" << pyMethod.object()
+                  << ' ' << methodName.constData() << ' ' << Shiboken::debugPyObject(pyMethod) << '\n';
+        int r = SignalManager::callPythonMetaMethod(method, args, pyMethod, false);
+        qDebug() << __FUNCTION__ <<  object << id << "rets"<<  r;
+        if (n++ > 40)
+            qFatal("REC!");
+
     }
     return -1;
 }
