diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp
index ff31e081a6f92c5152e70131cc6af44bff75e86e..c2cccfedb6a339f2a4a3f58fdcf293b8129aa2e6 100644
--- a/src/core/web_contents_delegate_qt.cpp
+++ b/src/core/web_contents_delegate_qt.cpp
@@ -139,6 +139,7 @@ void WebContentsDelegateQt::DidStartProvisionalLoadForFrame(int64 frame_id, int6
     if (!is_main_frame)
         return;
 
+    m_loadingErrorFrameList.clear();
     m_viewClient->loadStarted(toQt(validated_url));
 }
 
diff --git a/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp b/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
index d8ffe012494531af05042555ce7d059e27e13f6b..7ad18cd0f40d5f94fa9d37462dc9a413a42c0a77 100644
--- a/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
+++ b/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
@@ -353,6 +353,7 @@ void tst_QWebEngineFrame::requestedUrlAfterSetAndLoadFailures()
     const QUrl first("http://abcdef.abcdef/");
     page.setUrl(first);
     ::waitForSignal(&page, SIGNAL(loadFinished(bool)));
+    QCOMPARE(spy.count(), 1);
     QCOMPARE(page.url(), first);
     QCOMPARE(page.requestedUrl(), first);
     QVERIFY(!spy.at(0).first().toBool());
@@ -362,6 +363,7 @@ void tst_QWebEngineFrame::requestedUrlAfterSetAndLoadFailures()
 
     page.load(second);
     ::waitForSignal(&page, SIGNAL(loadFinished(bool)));
+    QCOMPARE(spy.count(), 2);
     QCOMPARE(page.url(), first);
     QCOMPARE(page.requestedUrl(), second);
     QVERIFY(!spy.at(1).first().toBool());