diff --git a/examples/qpa/qrasterwindow/main.cpp b/examples/qpa/qrasterwindow/main.cpp
index 958da2205a..0fad781b39 100644
--- a/examples/qpa/qrasterwindow/main.cpp
+++ b/examples/qpa/qrasterwindow/main.cpp
@@ -53,7 +53,7 @@
 #include <QGuiApplication>
 #include <QMatrix4x4>
 #include <QTimer>
-
+#include <QMouseEvent>
 static QPainterPath painterPathForTriangle()
 {
     static const QPointF bottomLeft(-1.0, -1.0);
@@ -83,6 +83,14 @@ public:
     }
 
 protected:
+    void mousePressEvent(QMouseEvent *e) override
+    {
+        qDebug() << __FUNCTION__ << e;
+        if (e->type() == QEvent::MouseButtonPress)
+            QGuiApplication::setOverrideCursor(Qt::PointingHandCursor);
+
+
+    }
     void paintEvent(QPaintEvent *)
     {
         QPainter p(this);
diff --git a/src/plugins/platforms/windows/qwindowscursor.cpp b/src/plugins/platforms/windows/qwindowscursor.cpp
index e1a5837201..6419041ad5 100644
--- a/src/plugins/platforms/windows/qwindowscursor.cpp
+++ b/src/plugins/platforms/windows/qwindowscursor.cpp
@@ -604,6 +604,7 @@ inline CursorHandlePtr QWindowsCursor::cursorHandle(const QCursor &cursor)
 
 void QWindowsCursor::changeCursor(QCursor *cursorIn, QWindow *window)
 {
+    qDebug() << __FUNCTION__ << window;
     QWindowsWindow *platformWindow = QWindowsWindow::windowsWindowOf(window);
     if (!platformWindow) // Desktop/Foreign window.
         return;
@@ -623,9 +624,12 @@ void QWindowsCursor::changeCursor(QCursor *cursorIn, QWindow *window)
 
 void QWindowsCursor::setOverrideCursor(const QCursor &cursor)
 {
+    qDebug() << __FUNCTION__;
     const CursorHandlePtr wcursor = cursorHandle(cursor);
     if (wcursor->handle()) {
-        const HCURSOR previousCursor = SetCursor(wcursor->handle());
+        HCURSOR hc = wcursor->handle();
+         qDebug() << __FUNCTION__  << "SetCursor(" << hc << ')';
+        const HCURSOR previousCursor = SetCursor(hc);
         if (m_overriddenCursor == nullptr)
             m_overriddenCursor = previousCursor;
     } else {
@@ -636,7 +640,9 @@ void QWindowsCursor::setOverrideCursor(const QCursor &cursor)
 
 void QWindowsCursor::clearOverrideCursor()
 {
+    qDebug() << __FUNCTION__ ;
     if (m_overriddenCursor) {
+        qDebug() << __FUNCTION__  << "SetCursor(" << m_overriddenCursor << ')';
         SetCursor(m_overriddenCursor);
         m_overriddenCursor = nullptr;
     }
diff --git a/src/plugins/platforms/windows/qwindowsdrag.cpp b/src/plugins/platforms/windows/qwindowsdrag.cpp
index 593ff3cef1..faf1cd1d5e 100644
--- a/src/plugins/platforms/windows/qwindowsdrag.cpp
+++ b/src/plugins/platforms/windows/qwindowsdrag.cpp
@@ -454,12 +454,15 @@ QWindowsOleDropSource::GiveFeedback(DWORD dwEffect)
         const CursorEntry &e = it.value();
         switch (m_mode) {
         case MouseDrag:
+            qDebug() << __FUNCTION__ <<  "SetCursor(" << e.cursor->handle() << ')';
             SetCursor(e.cursor->handle());
             break;
         case TouchDrag:
             // "Touch drag" with an unsuppressed cursor may happen with RDP (see createCursors())
-            if (QWindowsCursor::cursorState() != QWindowsCursor::CursorSuppressed)
+            if (QWindowsCursor::cursorState() != QWindowsCursor::CursorSuppressed) {
+                qDebug() << __FUNCTION__ << "SetCursor(" << nullptr << ')';
                 SetCursor(nullptr);
+            }
             if (!m_touchDragWindow)
                 m_touchDragWindow = new QWindowsDragCursorWindow;
             m_touchDragWindow->setPixmap(e.pixmap);
diff --git a/src/plugins/platforms/windows/qwindowsmousehandler.cpp b/src/plugins/platforms/windows/qwindowsmousehandler.cpp
index 814291c54a..a97ccc3419 100644
--- a/src/plugins/platforms/windows/qwindowsmousehandler.cpp
+++ b/src/plugins/platforms/windows/qwindowsmousehandler.cpp
@@ -356,7 +356,7 @@ bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd,
             || (m_previousCaptureWindow && window != m_previousCaptureWindow && currentWindowUnderMouse
                 && currentWindowUnderMouse != m_previousCaptureWindow)) {
             QPoint localPosition;
-            qCDebug(lcQpaEvents) << "Entering " << currentWindowUnderMouse;
+            qDebug() << __FUNCTION__ << "Entering " << currentWindowUnderMouse;
             if (QWindowsWindow *wumPlatformWindow = QWindowsWindow::windowsWindowOf(currentWindowUnderMouse)) {
                 localPosition = wumPlatformWindow->mapFromGlobal(globalPosition);
                 wumPlatformWindow->applyCursor();
diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp
index 9872b6b4e0..46be3c979f 100644
--- a/src/plugins/platforms/windows/qwindowswindow.cpp
+++ b/src/plugins/platforms/windows/qwindowswindow.cpp
@@ -2416,10 +2416,15 @@ void QWindowsWindow::applyCursor()
             if (QWindowsWindow *platformWindow = QWindowsWindow::windowsWindowOf(p))
                 platformWindow->applyCursor();
         } else {
-            SetCursor(defaultCursor(window())->handle());
+            HCURSOR hc = defaultCursor(window())->handle();
+            qDebug() << __FUNCTION__  << "1 SetCursor(" << hc << ')';
+            SetCursor(hc);
         }
     } else {
-        SetCursor(m_cursor->handle());
+        static int n = 0;
+        HCURSOR hc = m_cursor->handle();
+        qDebug() << __FUNCTION__  << "2 SetCursor(" << hc << ')' << '#' << n++;
+        SetCursor(hc);
     }
 #endif
 }
@@ -2429,7 +2434,7 @@ void QWindowsWindow::setCursor(const CursorHandlePtr &c)
 #ifndef QT_NO_CURSOR
     if (c->handle() != m_cursor->handle()) {
         const bool apply = applyNewCursor(window());
-        qCDebug(lcQpaWindows) << window() << __FUNCTION__
+        qDebug() << window() << __FUNCTION__
             << c->handle() << " doApply=" << apply;
         m_cursor = c;
         if (apply)
diff --git a/tests/manual/dialogs/main.cpp b/tests/manual/dialogs/main.cpp
index 3f7b33ee7a..ec7d39ca87 100644
--- a/tests/manual/dialogs/main.cpp
+++ b/tests/manual/dialogs/main.cpp
@@ -33,21 +33,51 @@
 #include "wizardpanel.h"
 #include "messageboxpanel.h"
 
+#include <QLibraryInfo>
+#include <QDialogButtonBox>
 #include <QMainWindow>
 #include <QApplication>
 #include <QMenuBar>
 #include <QTabWidget>
+#include <QVBoxLayout>
 #include <QMenu>
 #include <QAction>
 #include <QKeySequence>
 
+
 // Test for dialogs, allowing to play with all dialog options for implementing native dialogs.
 // Compiles with Qt 4.8 and Qt 5.
 
+class AboutDialog : public QDialog
+{
+public:
+    explicit AboutDialog(QWidget *parent = 0);
+};
+
+AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent)
+{
+    setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
+    QVBoxLayout *mainLayout = new QVBoxLayout(this);
+#if QT_VERSION >= 0x050600
+    QString text = QLatin1String(QLibraryInfo::build());
+#else
+    QString text = QLatin1String(QT_VERSION_STR);
+#endif
+    text += QLatin1String("\n\nStyle: ") + qApp->style()->objectName();
+    text += QLatin1String("\n\nDPR: ") + QString::number(qApp->devicePixelRatio());
+    mainLayout->addWidget(new QLabel(text));
+    QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Close, Qt::Horizontal);
+    connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
+    mainLayout->addWidget(buttonBox);
+}
+
 class MainWindow : public QMainWindow {
     Q_OBJECT
 public:
     explicit MainWindow(QWidget *parent = 0);
+
+public slots:
+    void aboutDialog();
 };
 
 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
@@ -66,6 +96,9 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
     action->setShortcut(QKeySequence(QKeySequence::Paste));
     action = editMenu->addAction(tr("Select All"));
     action->setShortcut(QKeySequence(QKeySequence::SelectAll));
+    QMenu *aboutMenu = menuBar()->addMenu(tr("&About"));
+    QAction *aboutAction = aboutMenu->addAction(tr("About..."), this, SLOT(aboutDialog()));
+    aboutAction->setShortcut(Qt::Key_F1);
     QTabWidget *tabWidget = new QTabWidget;
     tabWidget->addTab(new FileDialogPanel, tr("QFileDialog"));
     tabWidget->addTab(new ColorDialogPanel, tr("QColorDialog"));
@@ -78,6 +111,13 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
     setCentralWidget(tabWidget);
 }
 
+void MainWindow::aboutDialog()
+{
+    AboutDialog dialog(this);
+    dialog.setWindowTitle(tr("About Dialogs"));
+    dialog.exec();
+}
+
 int main(int argc, char *argv[])
 {
 #if QT_VERSION >= 0x050700
