diff --git a/src/widgets/accessible/qaccessiblemenu.cpp b/src/widgets/accessible/qaccessiblemenu.cpp
index a0a7852851d50df6cf7dc4898299151cd38a69f9..106f7244640e6a0256f961acb55c7dfe3e0e5c2c 100644
--- a/src/widgets/accessible/qaccessiblemenu.cpp
+++ b/src/widgets/accessible/qaccessiblemenu.cpp
@@ -225,6 +225,20 @@ QObject *QAccessibleMenuItem::object() const
     return m_action;
 }
 
+/*! \reimp */
+QWindow *QAccessibleMenuItem::window() const
+{
+    QWindow *result = Q_NULLPTR;
+    if (!m_owner.isNull()) {
+        result = m_owner->windowHandle();
+        if (!result) {
+            if (const QWidget *nativeParent = m_owner->nativeParentWidget())
+                result = nativeParent->windowHandle();
+        }
+    }
+    return result;
+}
+
 QRect QAccessibleMenuItem::rect() const
 {
     QRect rect;
diff --git a/src/widgets/accessible/qaccessiblemenu_p.h b/src/widgets/accessible/qaccessiblemenu_p.h
index b42c852ff19e8c568843c2456319ce339ad2a8d4..c51597bf1f22850bc62498c77325677f999b301f 100644
--- a/src/widgets/accessible/qaccessiblemenu_p.h
+++ b/src/widgets/accessible/qaccessiblemenu_p.h
@@ -108,6 +108,8 @@ public:
     QAccessibleInterface *parent() const Q_DECL_OVERRIDE;
     QAccessibleInterface *child(int index) const Q_DECL_OVERRIDE;
     QObject * object() const Q_DECL_OVERRIDE;
+    QWindow *window() const Q_DECL_OVERRIDE;
+
     QRect rect() const Q_DECL_OVERRIDE;
     QAccessible::Role role() const Q_DECL_OVERRIDE;
     void setText(QAccessible::Text t, const QString & text) Q_DECL_OVERRIDE;