diff --git a/examples/webenginewidgets/browser/tabwidget.cpp b/examples/webenginewidgets/browser/tabwidget.cpp
index af18b5a37bcc495f044bfc59add443e99f6b304b..efc7c438f76897d9141c727611953e905ca46658 100644
--- a/examples/webenginewidgets/browser/tabwidget.cpp
+++ b/examples/webenginewidgets/browser/tabwidget.cpp
@@ -310,10 +310,8 @@ void TabWidget::currentChanged(int index)
         disconnect(oldWebView, SIGNAL(statusBarMessage(QString)),
                 this, SIGNAL(showStatusBarMessage(QString)));
 #endif
-#if defined(QWEBENGINEVIEW_LINKHOVERED)
-        disconnect(oldWebView->page(), SIGNAL(linkHovered(QString,QString,QString)),
+        disconnect(oldWebView->page(), SIGNAL(linkHovered(QString)),
                 this, SIGNAL(linkHovered(QString)));
-#endif
         disconnect(oldWebView, SIGNAL(loadProgress(int)),
                 this, SIGNAL(loadProgress(int)));
     }
@@ -322,10 +320,8 @@ void TabWidget::currentChanged(int index)
     connect(webView, SIGNAL(statusBarMessage(QString)),
             this, SIGNAL(showStatusBarMessage(QString)));
 #endif
-#if defined(QWEBENGINEVIEW_LINKHOVERED)
-    connect(webView->page(), SIGNAL(linkHovered(QString,QString,QString)),
+    connect(webView->page(), SIGNAL(linkHovered(QString)),
             this, SIGNAL(linkHovered(QString)));
-#endif
     connect(webView, SIGNAL(loadProgress(int)),
             this, SIGNAL(loadProgress(int)));
 
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 4bd97c07ebc44bf6e298ec8062bae436510f486f..bbdcb25df0aa1f6a03fdf6241aba9cb8fa3bc753 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -205,6 +205,12 @@ void QWebEnginePagePrivate::loadProgressChanged(int progress)
     Q_EMIT q->loadProgress(progress);
 }
 
+void QWebEnginePagePrivate::didUpdateTargetURL(const QUrl &hoveredUrl)
+{
+    Q_Q(QWebEnginePage);
+    Q_EMIT q->linkHovered(hoveredUrl.toString());
+}
+
 void QWebEnginePagePrivate::selectionChanged()
 {
     Q_Q(QWebEnginePage);
diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h
index be5e4c52794303e992644dc6949dd94c5290563d..eaeae9a78347d8f911a3474be45618e184b72863 100644
--- a/src/webenginewidgets/api/qwebenginepage.h
+++ b/src/webenginewidgets/api/qwebenginepage.h
@@ -183,6 +183,7 @@ Q_SIGNALS:
     void loadProgress(int progress);
     void loadFinished(bool ok);
 
+    void linkHovered(const QString &url);
     void selectionChanged();
     void geometryChangeRequested(const QRect& geom);
     void windowCloseRequested();
diff --git a/src/webenginewidgets/api/qwebenginepage_p.h b/src/webenginewidgets/api/qwebenginepage_p.h
index d94b47fd9dd8ebcb4cdf620c817449a11920265c..db0da05e9441d2f74acdea2b5853cfe80bd9767e 100644
--- a/src/webenginewidgets/api/qwebenginepage_p.h
+++ b/src/webenginewidgets/api/qwebenginepage_p.h
@@ -114,7 +114,7 @@ public:
     virtual void urlChanged(const QUrl&) Q_DECL_OVERRIDE;
     virtual void iconChanged(const QUrl&) Q_DECL_OVERRIDE;
     virtual void loadProgressChanged(int progress) Q_DECL_OVERRIDE;
-    virtual void didUpdateTargetURL(const QUrl&) Q_DECL_OVERRIDE { };
+    virtual void didUpdateTargetURL(const QUrl&) Q_DECL_OVERRIDE;
     virtual void selectionChanged() Q_DECL_OVERRIDE;
     virtual QRectF viewportRect() const Q_DECL_OVERRIDE;
     virtual QPoint mapToGlobal(const QPoint &posInView) const Q_DECL_OVERRIDE;