diff --git a/sources/pyside6/libpyside/globalreceiverv2.cpp b/sources/pyside6/libpyside/globalreceiverv2.cpp
index 301d7c535..bd20599e6 100644
--- a/sources/pyside6/libpyside/globalreceiverv2.cpp
+++ b/sources/pyside6/libpyside/globalreceiverv2.cpp
@@ -8,6 +8,7 @@
 #include "signalmanager.h"
 
 #include <autodecref.h>
+#include <helper.h>
 #include <gilstate.h>
 
 #include <QtCore/qhashfunctions.h>
@@ -16,6 +17,7 @@
 #include <QtCore/QDebug>
 
 #include <cstring>
+#include <iostream>
 
 #define RECEIVER_DESTROYED_SLOT_NAME "__receiverDestroyed__(QObject*)"
 
@@ -92,6 +94,10 @@ using namespace PySide;
 DynamicSlotDataV2::DynamicSlotDataV2(PyObject *callback, GlobalReceiverV2 *parent) :
     m_parent(parent)
 {
+        std::cerr << __FUNCTION__ << ' ' << this << ' '
+                  << " cb=" << callback << ' '
+                  << Shiboken::debugPyObject(callback)
+                  << '\n';
     Shiboken::GilState gil;
 
     if (PyMethod_Check(callback)) {
@@ -168,6 +174,8 @@ int DynamicSlotDataV2::addSlot(const char *signature)
 void DynamicSlotDataV2::onCallbackDestroyed(void *data)
 {
     auto self = reinterpret_cast<DynamicSlotDataV2 *>(data);
+    qDebug() << __FUNCTION__ << self;
+
     self->m_weakRef = nullptr;
     Py_BEGIN_ALLOW_THREADS
     SignalManager::instance().deleteGobalReceiver(self->m_parent);
@@ -178,6 +186,8 @@ DynamicSlotDataV2::~DynamicSlotDataV2()
 {
     Shiboken::GilState gil;
 
+    std::cerr << __FUNCTION__ << ' '  << this << " cb=" << m_callback << '\n';
+
     Py_XDECREF(m_weakRef);
     m_weakRef = nullptr;
 
@@ -192,10 +202,12 @@ GlobalReceiverV2::GlobalReceiverV2(PyObject *callback, QObject *receiver) :
     m_receiver(receiver)
 {
     m_data = new DynamicSlotDataV2(callback, this);
+    qDebug() << __FUNCTION__ << this  << receiver;
 }
 
 GlobalReceiverV2::~GlobalReceiverV2()
 {
+    qDebug() << __FUNCTION__ << this ;
     m_refs.clear();
     // Remove itself from map.
     // Suppress handling of destroyed() for objects whose last reference is contained inside
@@ -219,16 +231,20 @@ void GlobalReceiverV2::incRef(const QObject *link)
 {
     Q_ASSERT(link);
     m_refs.append(link);
+    qDebug() << __FUNCTION__ << link << m_refs.size();
 }
 
 void GlobalReceiverV2::decRef(const QObject *link)
 {
+    qDebug() << __FUNCTION__ << link;
     Q_ASSERT(link);
     m_refs.removeOne(link);
+    qDebug() << __FUNCTION__ << link << m_refs.size();
 }
 
 void GlobalReceiverV2::notify()
 {
+    qDebug() << __FUNCTION__;
     purgeDeletedSenders();
 }
 
@@ -239,6 +255,10 @@ static bool isNull(const QPointer<const QObject> &p)
 
 void GlobalReceiverV2::purgeDeletedSenders()
 {
+    qDebug() << __FUNCTION__ ;
+    for (auto it =  m_refs.cbegin(); it != m_refs.cend(); ++it) {
+        qDebug() << it->isNull() << it->data();
+    }
     m_refs.erase(std::remove_if(m_refs.begin(), m_refs.end(), isNull), m_refs.end());
 }
 
diff --git a/sources/pyside6/libpyside/qobjectconnect.cpp b/sources/pyside6/libpyside/qobjectconnect.cpp
index 608eae170..403815152 100644
--- a/sources/pyside6/libpyside/qobjectconnect.cpp
+++ b/sources/pyside6/libpyside/qobjectconnect.cpp
@@ -218,8 +218,10 @@ QMetaObject::Connection qobjectConnectCallback(QObject *source, const char *sign
     }
 
     Q_ASSERT(receiver.receiver);
-    if (receiver.usingGlobalReceiver)
+    if (receiver.usingGlobalReceiver) {
+        qDebug() << __FUNCTION__ << receiver.receiver;
         signalManager.notifyGlobalReceiver(receiver.receiver);
+    }
 
     const QMetaMethod signalMethod = receiver.receiver->metaObject()->method(signalIndex);
     static_cast<FriendlyQObject *>(source)->connectNotify(signalMethod);
@@ -246,6 +248,7 @@ bool qobjectDisconnectCallback(QObject *source, const char *signal, PyObject *ca
     const QMetaMethod slotMethod = receiver.receiver->metaObject()->method(slotIndex);
     static_cast<FriendlyQObject *>(source)->disconnectNotify(slotMethod);
 
+    qDebug() << __FUNCTION__ << "usingGlobalReceiver=" << receiver.usingGlobalReceiver;
     if (receiver.usingGlobalReceiver) { // might delete the receiver
         PySide::SignalManager &signalManager = PySide::SignalManager::instance();
         signalManager.releaseGlobalReceiver(source, receiver.receiver);
diff --git a/sources/pyside6/libpyside/signalmanager.cpp b/sources/pyside6/libpyside/signalmanager.cpp
index 753b50557..718c6cadc 100644
--- a/sources/pyside6/libpyside/signalmanager.cpp
+++ b/sources/pyside6/libpyside/signalmanager.cpp
@@ -292,11 +292,14 @@ void SignalManager::setQmlMetaCallErrorHandler(QmlMetaCallErrorHandler handler)
 QObject *SignalManager::globalReceiver(QObject *sender, PyObject *callback, QObject *receiver)
 {
     auto &globalReceivers = m_d->m_globalReceivers;
+    qDebug()  << __FUNCTION__;
     const GlobalReceiverKey key = GlobalReceiverV2::key(callback);
     auto it = globalReceivers.find(key);
     if (it == globalReceivers.end()) {
         auto gr = std::make_shared<GlobalReceiverV2>(callback, receiver);
         it = globalReceivers.insert(key, gr);
+        for (auto i = globalReceivers.cbegin(); i != globalReceivers.cend(); ++i)
+            qDebug() << i.value().get();
     }
     if (sender)
         it.value()->incRef(sender); // create a link reference
@@ -306,11 +309,13 @@ QObject *SignalManager::globalReceiver(QObject *sender, PyObject *callback, QObj
 
 void SignalManager::notifyGlobalReceiver(QObject *receiver)
 {
+    qDebug()  << __FUNCTION__;
     reinterpret_cast<GlobalReceiverV2 *>(receiver)->notify();
 }
 
 void SignalManager::releaseGlobalReceiver(const QObject *source, QObject *receiver)
 {
+    qDebug() << __FUNCTION__ << source << receiver;
     auto gr = static_cast<GlobalReceiverV2 *>(receiver);
     gr->decRef(source);
     if (gr->isEmpty())
@@ -319,6 +324,7 @@ void SignalManager::releaseGlobalReceiver(const QObject *source, QObject *receiv
 
 void SignalManager::deleteGobalReceiver(const QObject *gr)
 {
+    qDebug() << __FUNCTION__ << gr;
     SignalManager::instance().m_d->deleteGobalReceiver(gr);
 }
 
@@ -334,6 +340,7 @@ void SignalManager::SignalManagerPrivate::deleteGobalReceiver(const QObject *gr)
 
 void SignalManager::SignalManagerPrivate::clear()
 {
+    qDebug() << __FUNCTION__ << m_globalReceivers.size();
     // Delete receivers by always retrieving the current first element,
     // because deleting a receiver can indirectly delete another one
     // via ~DynamicSlotDataV2(). Using ~QHash/clear() could cause an
