diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index e9ad17cf09bd680cc0cda6496c6ab21faba84237..0ed9d0135b7c31744821b3d006ba03f0a9f673ee 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -250,7 +250,7 @@ void QWebEnginePagePrivate::adoptNewWindow(WebContentsAdapter *newWebContents, W
     Q_Q(QWebEnginePage);
     QWebEnginePage *newPage = q->createWindow(disposition == WebContentsAdapterClient::NewPopupDisposition ? QWebEnginePage::WebModalDialog : QWebEnginePage::WebBrowserWindow);
     // Overwrite the new page's WebContents with ours.
-    if (newPage) {
+    if (newPage && newPage->d_func() != this) {
         newPage->d_func()->adapter = newWebContents;
         newWebContents->initialize(newPage->d_func());
         if (!initialGeometry.isEmpty())