diff --git a/WebCore/loader/FrameLoader.cpp b/WebCore/loader/FrameLoader.cpp
index d8aca14..51a0695 100644
--- a/WebCore/loader/FrameLoader.cpp
+++ b/WebCore/loader/FrameLoader.cpp
@@ -2609,8 +2609,6 @@
 {
     m_client->dispatchDidHandleOnloadEvents();
 
-    m_loadType = FrameLoadTypeStandard;
-
 #if ENABLE(OFFLINE_WEB_APPLICATIONS)
     if (documentLoader())
         documentLoader()->applicationCacheHost()->stopDeferringEvents();
@@ -2690,7 +2688,14 @@
     // 2. Delegates that modify the cache policy using willSendRequest: should
     //    not affect any other resources. Such changes need to be done
     //    per request.
-    if (loadType == FrameLoadTypeReload) {
+    if (!mainResource) {
+        if (request.isConditional())
+            request.setCachePolicy(ReloadIgnoringCacheData);
+        else if (documentLoader()->isLoadingInAPISense())
+            request.setCachePolicy(documentLoader()->originalRequest().cachePolicy());
+        else
+            request.setCachePolicy(UseProtocolCachePolicy);
+    } else if (loadType == FrameLoadTypeReload) {
         request.setCachePolicy(ReloadIgnoringCacheData);
         request.setHTTPHeaderField("Cache-Control", "max-age=0");
     } else if (loadType == FrameLoadTypeReloadFromOrigin) {
@@ -2701,8 +2706,6 @@
         request.setCachePolicy(ReloadIgnoringCacheData);
     else if (isBackForwardLoadType(loadType) && m_stateMachine.committedFirstRealDocumentLoad() && !request.url().protocolIs("https"))
         request.setCachePolicy(ReturnCacheDataElseLoad);
-    else if (!mainResource && documentLoader()->isLoadingInAPISense())
-        request.setCachePolicy(documentLoader()->originalRequest().cachePolicy());
     
     if (mainResource)
         request.setHTTPAccept(defaultAcceptHeader);
