diff --git a/src/core/api/qwebenginecookiestore.cpp b/src/core/api/qwebenginecookiestore.cpp
index 51753e87b7a2b353c2eb4d63cce7e515881a65fb..89272057e830327ef66b25994445c6d919d27567 100644
--- a/src/core/api/qwebenginecookiestore.cpp
+++ b/src/core/api/qwebenginecookiestore.cpp
@@ -46,13 +46,12 @@ QT_BEGIN_NAMESPACE
 
 using namespace QtWebEngineCore;
 
-QWebEngineCookieStorePrivate::QWebEngineCookieStorePrivate(QWebEngineCookieStore* q)
+QWebEngineCookieStorePrivate::QWebEngineCookieStorePrivate()
     : m_nextCallbackId(CallbackDirectory::ReservedCallbackIdsEnd)
     , m_deleteSessionCookiesPending(false)
     , m_deleteAllCookiesPending(false)
     , m_getAllCookiesPending(false)
     , delegate(0)
-    , q_ptr(q)
 {
 }
 
@@ -246,8 +245,7 @@ bool QWebEngineCookieStorePrivate::canSetCookie(const QUrl &firstPartyUrl, const
 */
 
 QWebEngineCookieStore::QWebEngineCookieStore(QObject *parent)
-    : QObject(parent)
-    , d_ptr(new QWebEngineCookieStorePrivate(this))
+    : QObject(*new QWebEngineCookieStorePrivate, parent)
 {
 
 }
diff --git a/src/core/api/qwebenginecookiestore.h b/src/core/api/qwebenginecookiestore.h
index 6cbe399f200655221b144393bb95504b3162b92b..73a4ac19a30365ac75769a7cdc5718d1d0fadc3e 100644
--- a/src/core/api/qwebenginecookiestore.h
+++ b/src/core/api/qwebenginecookiestore.h
@@ -94,7 +94,6 @@ private:
     friend class QtWebEngineCore::CookieMonsterDelegateQt;
     Q_DISABLE_COPY(QWebEngineCookieStore)
     Q_DECLARE_PRIVATE(QWebEngineCookieStore)
-    QScopedPointer<QWebEngineCookieStorePrivate> d_ptr;
 };
 
 QT_END_NAMESPACE
diff --git a/src/core/api/qwebenginecookiestore_p.h b/src/core/api/qwebenginecookiestore_p.h
index d773c0d3ede0a2cebf62cf1eb2538d1216fa448c..b8c8b614509f94d09239b4417e5b4c5248d3c566 100644
--- a/src/core/api/qwebenginecookiestore_p.h
+++ b/src/core/api/qwebenginecookiestore_p.h
@@ -56,6 +56,7 @@
 #include <QVector>
 #include <QNetworkCookie>
 #include <QUrl>
+#include <QtCore/private/qobject_p.h>
 
 namespace QtWebEngineCore {
 class CookieMonsterDelegateQt;
@@ -63,7 +64,9 @@ class CookieMonsterDelegateQt;
 
 QT_BEGIN_NAMESPACE
 
-class QWEBENGINE_PRIVATE_EXPORT QWebEngineCookieStorePrivate {
+class QWEBENGINE_PRIVATE_EXPORT QWebEngineCookieStorePrivate : public QObjectPrivate
+{
+    Q_DECLARE_PUBLIC(QWebEngineCookieStore)
     struct CookieData {
         quint64 callbackId;
         QNetworkCookie cookie;
@@ -71,7 +74,6 @@ class QWEBENGINE_PRIVATE_EXPORT QWebEngineCookieStorePrivate {
     };
     friend class QTypeInfo<CookieData>;
 public:
-    Q_DECLARE_PUBLIC(QWebEngineCookieStore)
     QtWebEngineCore::CallbackDirectory callbackDirectory;
     QWebEngineCallback<QWebEngineCookieStore::FilterRequest&> filterCallback;
     QVector<CookieData> m_pendingUserCookies;
@@ -81,9 +83,8 @@ public:
     bool m_getAllCookiesPending;
 
     QtWebEngineCore::CookieMonsterDelegateQt *delegate;
-    QWebEngineCookieStore *q_ptr;
 
-    QWebEngineCookieStorePrivate(QWebEngineCookieStore *q);
+    QWebEngineCookieStorePrivate();
 
     void processPendingUserCookies();
     void setCookie(const QWebEngineCallback<bool> &callback, const QNetworkCookie &cookie, const QUrl &origin);
diff --git a/src/core/cookie_monster_delegate_qt.cpp b/src/core/cookie_monster_delegate_qt.cpp
index a81670a6cdeb80db804056093709609b2d27cf95..fa4e9e8bf84837c5647564a4c6566031d57018e4 100644
--- a/src/core/cookie_monster_delegate_qt.cpp
+++ b/src/core/cookie_monster_delegate_qt.cpp
@@ -152,7 +152,7 @@ void CookieMonsterDelegateQt::setClient(QWebEngineCookieStore *client)
     if (!m_client)
         return;
 
-    m_client->d_ptr->delegate = this;
+    m_client->d_func()->delegate = this;
 
     if (hasCookieMonster())
         m_client->d_func()->processPendingUserCookies();
@@ -163,14 +163,14 @@ bool CookieMonsterDelegateQt::canSetCookie(const QUrl &firstPartyUrl, const QByt
     if (!m_client)
         return true;
 
-    return m_client->d_ptr->canSetCookie(firstPartyUrl, cookieLine, url);
+    return m_client->d_func()->canSetCookie(firstPartyUrl, cookieLine, url);
 }
 
 void CookieMonsterDelegateQt::OnCookieChanged(const net::CanonicalCookie& cookie, bool removed, ChangeCause cause)
 {
     if (!m_client)
         return;
-    m_client->d_ptr->onCookieChanged(toQt(cookie), removed);
+    m_client->d_func()->onCookieChanged(toQt(cookie), removed);
 }
 
 }