diff --git a/qtbase/src/network/socket/qhttpsocketengine.cpp b/qtbase/src/network/socket/qhttpsocketengine.cpp
index dfeb8c7e..43c25dbd 100644
--- a/qtbase/src/network/socket/qhttpsocketengine.cpp
+++ b/qtbase/src/network/socket/qhttpsocketengine.cpp
@@ -229,6 +229,12 @@ qint64 QHttpSocketEngine::bytesAvailable() const
 qint64 QHttpSocketEngine::read(char *data, qint64 maxlen)
 {
     Q_D(QHttpSocketEngine);
+    if (!d->socket) {
+        setError(QAbstractSocket::OperationError,
+                 QLatin1String("TCP socket not connected"));
+        setState(QAbstractSocket::UnconnectedState);
+        return -1;
+    }
     qint64 bytesRead = d->socket->read(data, maxlen);
 
     if (d->socket->state() == QAbstractSocket::UnconnectedState
@@ -252,7 +258,14 @@ qint64 QHttpSocketEngine::read(char *data, qint64 maxlen)
 qint64 QHttpSocketEngine::write(const char *data, qint64 len)
 {
     Q_D(QHttpSocketEngine);
-    return d->socket->write(data, len);
+    if (d->socket) {
+        return d->socket->write(data, len);
+    } else {
+        setError(QAbstractSocket::OperationError,
+                 QLatin1String("TCP socket not connected"));
+        setState(QAbstractSocket::UnconnectedState);
+        return -1;
+    }
 }
 
 #ifndef QT_NO_UDPSOCKET
