diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp
index 5c513a5..c863e05 100644
--- a/src/gui/kernel/qwindow.cpp
+++ b/src/gui/kernel/qwindow.cpp
@@ -1946,6 +1946,7 @@ void QWindowPrivate::maybeQuitOnLastWindowClosed()
 */
 void QWindow::setCursor(const QCursor &cursor)
 {
+    qDebug() << Q_FUNC_INFO << this << cursor;
     Q_D(QWindow);
     d->setCursor(&cursor);
 }
@@ -1972,17 +1973,21 @@ QCursor QWindow::cursor() const
 
 void QWindowPrivate::setCursor(const QCursor *newCursor)
 {
-
-    Q_Q(QWindow);
+        Q_Q(QWindow);
+    qDebug() << Q_FUNC_INFO << q << newCursor;
     if (newCursor) {
         const Qt::CursorShape newShape = newCursor->shape();
-        if (newShape <= Qt::LastCursor && hasCursor && newShape == cursor.shape())
+        if (newShape <= Qt::LastCursor && hasCursor && newShape == cursor.shape()) {
+            qDebug() << Q_FUNC_INFO << "EQUAL non0";
             return; // Unchanged and no bitmap/custom cursor.
+        }
         cursor = *newCursor;
         hasCursor = true;
     } else {
-        if (!hasCursor)
+        if (!hasCursor) {
+            qDebug() << Q_FUNC_INFO << "EQUAL 0";
             return;
+        }
         cursor = QCursor(Qt::ArrowCursor);
         hasCursor = false;
     }
@@ -1997,6 +2002,7 @@ void QWindowPrivate::setCursor(const QCursor *newCursor)
 void QWindowPrivate::applyCursor()
 {
     Q_Q(QWindow);
+    qDebug() << Q_FUNC_INFO << platformWindow;
     if (platformWindow) {
         if (QPlatformCursor *platformCursor = screen->handle()->cursor()) {
             QCursor *c = QGuiApplication::overrideCursor();
diff --git a/src/plugins/platforms/windows/qwindowscursor.cpp b/src/plugins/platforms/windows/qwindowscursor.cpp
index 84c82dc..1e305d2 100644
--- a/src/plugins/platforms/windows/qwindowscursor.cpp
+++ b/src/plugins/platforms/windows/qwindowscursor.cpp
@@ -402,9 +402,11 @@ QWindowsWindowCursor QWindowsCursor::standardWindowCursor(Qt::CursorShape shape)
 
 void QWindowsCursor::changeCursor(QCursor *cursorIn, QWindow *window)
 {
-
-    if (QWindowsContext::verboseWindows > 1)
-        qDebug() << __FUNCTION__ <<  cursorIn << window;
+    if (cursorIn) {
+        qDebug() << __FUNCTION__ <<  *cursorIn << window;
+    } else {
+        qDebug() << __FUNCTION__ <<  "<NULL>" << window;
+    }
     if (!window)
         return;
     if (!cursorIn) {
diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp
index 21c8c49..5cc8e72 100644
--- a/src/plugins/platforms/windows/qwindowswindow.cpp
+++ b/src/plugins/platforms/windows/qwindowswindow.cpp
@@ -1662,6 +1662,7 @@ void QWindowsWindow::getSizeHints(MINMAXINFO *mmi) const
 
 void QWindowsWindow::applyCursor()
 {
+    qDebug() << Q_FUNC_INFO <<window()<< m_cursor.handle();
     if (m_cursor.isNull()) { // Recurse up to parent with non-null cursor.
         if (const QWindow *p = window()->parent())
             QWindowsWindow::baseWindowOf(p)->applyCursor();
@@ -1691,7 +1692,7 @@ void QWindowsWindow::setCursor(const QWindowsWindowCursor &c)
 {
     if (c.handle() != m_cursor.handle()) {
         const bool apply = applyNewCursor(window());
-        if (QWindowsContext::verboseWindows)
+
             qDebug() << window() << __FUNCTION__ << "Shape=" << c.cursor().shape()
                      << " doApply=" << apply;
         m_cursor = c;
diff --git a/src/plugins/platforms/xcb/qxcbcursor.cpp b/src/plugins/platforms/xcb/qxcbcursor.cpp
index 0704ab6..cddd3a4 100644
--- a/src/plugins/platforms/xcb/qxcbcursor.cpp
+++ b/src/plugins/platforms/xcb/qxcbcursor.cpp
@@ -50,6 +50,7 @@
 #include <X11/cursorfont.h>
 #include <xcb/xfixes.h>
 #include <xcb/xcb_image.h>
+#include <QDebug>
 
 QT_BEGIN_NAMESPACE
 
@@ -294,6 +295,11 @@ QXcbCursor::~QXcbCursor()
 #ifndef QT_NO_CURSOR
 void QXcbCursor::changeCursor(QCursor *cursor, QWindow *widget)
 {
+    if (cursor) {
+        qDebug() << '>' << Q_FUNC_INFO << *cursor << widget;
+    } else {
+        qDebug() << '>' << Q_FUNC_INFO << "NULL" << widget;
+    }
     QXcbWindow *w = 0;
     if (widget && widget->handle())
         w = static_cast<QXcbWindow *>(widget->handle());
@@ -308,11 +314,13 @@ void QXcbCursor::changeCursor(QCursor *cursor, QWindow *widget)
             if (!m_bitmapCursorMap.contains(id))
                 m_bitmapCursorMap.insert(id, createBitmapCursor(cursor));
             c = m_bitmapCursorMap.value(id);
+            qDebug() << "created bitmap cursor" << c;
         } else {
             int id = cursor->shape();
             if (!m_shapeCursorMap.contains(id))
                 m_shapeCursorMap.insert(id, createFontCursor(cursor->shape()));
             c = m_shapeCursorMap.value(id);
+            qDebug() << "created shape cursor" << c;
         }
     }
 
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
index 528c4c6..39679f4 100644
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
@@ -1710,6 +1710,7 @@ bool QXcbWindow::setMouseGrabEnabled(bool grab)
 
 void QXcbWindow::setCursor(xcb_cursor_t cursor)
 {
+    qDebug() << Q_FUNC_INFO << m_window << window() << cursor;
     xcb_change_window_attributes(xcb_connection(), m_window, XCB_CW_CURSOR, &cursor);
     xcb_flush(xcb_connection());
 }
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index ecf73ee..f5c8179 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -4565,6 +4565,7 @@ QCursor QWidget::cursor() const
 
 void QWidget::setCursor(const QCursor &cursor)
 {
+    qDebug() << Q_FUNC_INFO << this << cursor;
     Q_D(QWidget);
 // On Mac we must set the cursor even if it is the ArrowCursor.
 #if !defined(Q_WS_MAC)
diff --git a/src/widgets/kernel/qwidget_qpa.cpp b/src/widgets/kernel/qwidget_qpa.cpp
index 2c2d912..8fa7caf 100644
--- a/src/widgets/kernel/qwidget_qpa.cpp
+++ b/src/widgets/kernel/qwidget_qpa.cpp
@@ -995,18 +995,21 @@ void QWidgetPrivate::setModal_sys()
 #ifndef QT_NO_CURSOR
 static inline void applyCursor(QWidget *w, QCursor c)
 {
+    qDebug() << Q_FUNC_INFO << w << c;
     if (QWindow *window = w->windowHandle())
         window->setCursor(c);
 }
 
 static inline void unsetCursor(QWidget *w)
 {
+    qDebug() << Q_FUNC_INFO << w;
     if (QWindow *window = w->windowHandle())
         window->unsetCursor();
 }
 
 void qt_qpa_set_cursor(QWidget *w, bool force)
 {
+    qDebug() << '>' << __FUNCTION__ << w << force;
     if (!w->testAttribute(Qt::WA_WState_Created))
         return;
 
@@ -1031,6 +1034,7 @@ void qt_qpa_set_cursor(QWidget *w, bool force)
         nativeParent = w->nativeParentWidget();
     if (!nativeParent || !nativeParent->internalWinId())
         return;
+    qDebug() << __FUNCTION__  << "nativeParent: " << nativeParent << " w: " << w;
 
     if (w->isWindow() || w->testAttribute(Qt::WA_SetCursor)) {
         if (w->isEnabled())
@@ -1042,6 +1046,7 @@ void qt_qpa_set_cursor(QWidget *w, bool force)
     } else {
         unsetCursor(nativeParent);
     }
+    qDebug() << '<' <<__FUNCTION__ << w << force;
 }
 #endif //QT_NO_CURSOR 
 
