diff --git a/src/core/browser_context_adapter.cpp b/src/core/browser_context_adapter.cpp
index 7e9a4e41d78a46e4207d7cb0f70399261dce5ca0..404cfc575a9aa274c769edb089484a849dc8376e 100644
--- a/src/core/browser_context_adapter.cpp
+++ b/src/core/browser_context_adapter.cpp
@@ -334,6 +334,8 @@ void BrowserContextAdapter::setHttpUserAgent(const QString &userAgent)
 
 BrowserContextAdapter::HttpCacheType BrowserContextAdapter::httpCacheType() const
 {
+    if (m_httpCacheType == NoCache)
+        return NoCache;
     if (isOffTheRecord() || httpCachePath().isEmpty())
         return MemoryHttpCache;
     return m_httpCacheType;
diff --git a/src/webengine/api/qquickwebengineprofile.cpp b/src/webengine/api/qquickwebengineprofile.cpp
index 728f0b4a4bfca8d030e6bf92c0bdcd68653b1aa4..17c9738fb6504e79bf145e95e0f30e379948121c 100644
--- a/src/webengine/api/qquickwebengineprofile.cpp
+++ b/src/webengine/api/qquickwebengineprofile.cpp
@@ -98,9 +98,10 @@ ASSERT_ENUMS_MATCH(QQuickWebEngineDownloadItem::MimeHtmlSaveFormat, QtWebEngineC
 
     This enum describes the HTTP cache type:
 
-    \value MemoryHttpCache Use an in-memory cache. This is the only setting possible if
-    \c off-the-record is set or no cache path is available.
-    \value DiskHttpCache Use a disk cache. This is the default.
+    \value MemoryHttpCache Use an in-memory cache. This is the default if
+    \c off-the-record is set.
+    \value DiskHttpCache Use a disk cache. This is the default if \c off-the-record
+    is not set. Falls back to \c MemoryHttpCache if \c off-the-record is set.
     \value NoCache Disable both in-memory and disk caching. (Added in Qt 5.7)
 */
 
diff --git a/src/webenginewidgets/api/qwebengineprofile.cpp b/src/webenginewidgets/api/qwebengineprofile.cpp
index cf4e0f41c1ad2ce689418981d440013e3003856a..a619a10c3b4b6b026a983b070b032ceb68278bbb 100644
--- a/src/webenginewidgets/api/qwebengineprofile.cpp
+++ b/src/webenginewidgets/api/qwebengineprofile.cpp
@@ -109,9 +109,11 @@ using QtWebEngineCore::BrowserContextAdapter;
 
     This enum describes the HTTP cache type:
 
-    \value MemoryHttpCache Use an in-memory cache. This is the only setting possible if
-    \c off-the-record is set or no cache path is available.
-    \value DiskHttpCache Use a disk cache. This is the default.
+    \value MemoryHttpCache Use an in-memory cache. This is the default if
+    \c off-the-record is set.
+    \value DiskHttpCache Use a disk cache. This is the default if the profile
+    is not \c off-the-record. If set on an \c off-the-record profile will instead
+    set \c MemoryHttpCache.
     \value NoCache Disable both in-memory and disk caching. (Added in Qt 5.7)
 */