diff --git a/src/client/qwaylandclipboard.cpp b/src/client/qwaylandclipboard.cpp
index a2b7a6697de1a5654be9cd80e5768a444b528b1b..5399e79d1182278bbcfc485ad8d70a4bc87f9cdb 100644
--- a/src/client/qwaylandclipboard.cpp
+++ b/src/client/qwaylandclipboard.cpp
@@ -54,11 +54,11 @@ QWaylandClipboard::~QWaylandClipboard()
 QMimeData *QWaylandClipboard::mimeData(QClipboard::Mode mode)
 {
     if (mode != QClipboard::Clipboard)
-        return 0;
+        return &m_emptyData;
 
     QWaylandInputDevice *inputDevice = mDisplay->currentInputDevice();
     if (!inputDevice || !inputDevice->dataDevice())
-        return 0;
+        return &m_emptyData;
 
     QWaylandDataSource *source = inputDevice->dataDevice()->selectionSource();
     if (source) {
@@ -68,7 +68,7 @@ QMimeData *QWaylandClipboard::mimeData(QClipboard::Mode mode)
     if (inputDevice->dataDevice()->selectionOffer())
         return inputDevice->dataDevice()->selectionOffer()->mimeData();
 
-    return 0;
+    return &m_emptyData;
 }
 
 void QWaylandClipboard::setMimeData(QMimeData *data, QClipboard::Mode mode)
diff --git a/src/client/qwaylandclipboard_p.h b/src/client/qwaylandclipboard_p.h
index 02223076e1f923d99df13fd08daba2b1ee41b569..e9344c5f37c89b8710b03910477e7e5202d29290 100644
--- a/src/client/qwaylandclipboard_p.h
+++ b/src/client/qwaylandclipboard_p.h
@@ -47,6 +47,7 @@
 
 #include <qpa/qplatformclipboard.h>
 #include <QtCore/QVariant>
+#include <QtCore/QMimeData>
 
 #include <QtWaylandClient/private/qwaylandclientexport_p.h>
 
@@ -70,6 +71,7 @@ public:
 
 private:
     QWaylandDisplay *mDisplay;
+    QMimeData m_emptyData;
 };
 
 }