diff --git a/src/websockets/qwebsocket_p.cpp b/src/websockets/qwebsocket_p.cpp
index f005c17067bf20450b8f77db526043771bcdb654..fe6c565bf1f97e221ac6944d9901e4ae38fce2ef 100644
--- a/src/websockets/qwebsocket_p.cpp
+++ b/src/websockets/qwebsocket_p.cpp
@@ -341,10 +341,10 @@ void QWebSocketPrivate::close(QWebSocketProtocol::CloseCode closeCode, QString r
         quint32 maskingKey = 0;
         if (m_mustMask) {
             maskingKey = generateMaskingKey();
-            QWebSocketProtocol::mask(payload.data(), payload.size(), maskingKey);
+            QWebSocketProtocol::mask(payload.data(), quint64(payload.size()), maskingKey);
         }
         QByteArray frame = getFrameHeader(QWebSocketProtocol::OpCodeClose,
-                                          payload.size(), maskingKey, true);
+                                          quint64(payload.size()), maskingKey, true);
 
         Q_ASSERT(payload.length() <= 125);
         frame.append(payload);
@@ -431,7 +431,7 @@ void QWebSocketPrivate::open(const QNetworkRequest &request, bool mask)
     #ifndef QT_NO_NETWORKPROXY
                     sslSocket->setProxy(m_configuration.m_proxy);
     #endif
-                    sslSocket->connectToHostEncrypted(url.host(), url.port(443));
+                    sslSocket->connectToHostEncrypted(url.host(), quint16(url.port(443)));
                 } else {
                     const QString message = QWebSocket::tr("Out of memory.");
                     setErrorString(message);
@@ -453,7 +453,7 @@ void QWebSocketPrivate::open(const QNetworkRequest &request, bool mask)
     #ifndef QT_NO_NETWORKPROXY
                 m_pSocket->setProxy(m_configuration.m_proxy);
     #endif
-                m_pSocket->connectToHost(url.host(), url.port(80));
+                m_pSocket->connectToHost(url.host(), quint16(url.port(80)));
             } else {
                 const QString message = QWebSocket::tr("Out of memory.");
                 setErrorString(message);
@@ -478,7 +478,8 @@ void QWebSocketPrivate::ping(const QByteArray &payload)
     quint32 maskingKey = 0;
     if (m_mustMask)
         maskingKey = generateMaskingKey();
-    QByteArray pingFrame = getFrameHeader(QWebSocketProtocol::OpCodePing, payloadTruncated.size(),
+    QByteArray pingFrame = getFrameHeader(QWebSocketProtocol::OpCodePing,
+                                          quint64(payloadTruncated.size()),
                                           maskingKey, true);
     if (m_mustMask)
         QWebSocketProtocol::mask(&payloadTruncated, maskingKey);
@@ -759,7 +760,7 @@ qint64 QWebSocketPrivate::doWriteFrames(const QByteArray &data, bool isBinary)
     const QWebSocketProtocol::OpCode firstOpCode = isBinary ?
                 QWebSocketProtocol::OpCodeBinary : QWebSocketProtocol::OpCodeText;
 
-    int numFrames = data.size() / FRAME_SIZE_IN_BYTES;
+    int numFrames = data.size() / int(FRAME_SIZE_IN_BYTES);
     QByteArray tmpData(data);
     tmpData.detach();
     char *payload = tmpData.data();
@@ -772,7 +773,7 @@ qint64 QWebSocketPrivate::doWriteFrames(const QByteArray &data, bool isBinary)
     if (Q_UNLIKELY(numFrames == 0))
         numFrames = 1;
     quint64 currentPosition = 0;
-    quint64 bytesLeft = data.size();
+    quint64 bytesLeft = quint64(data.size());
 
     for (int i = 0; i < numFrames; ++i) {
         quint32 maskingKey = 0;
@@ -1184,7 +1185,10 @@ void QWebSocketPrivate::processPing(const QByteArray &data)
     quint32 maskingKey = 0;
     if (m_mustMask)
         maskingKey = generateMaskingKey();
-    m_pSocket->write(getFrameHeader(QWebSocketProtocol::OpCodePong, data.size(), maskingKey, true));
+    m_pSocket->write(getFrameHeader(QWebSocketProtocol::OpCodePong,
+                                    unsigned(data.size()),
+                                    maskingKey,
+                                    true));
     if (data.size() > 0) {
         QByteArray maskedData = data;
         if (m_mustMask)
diff --git a/src/websockets/qwebsocketframe.cpp b/src/websockets/qwebsocketframe.cpp
index 3be3d284f3e527c192e9609c69e9982fc7f6bda0..041302e02687c67857d6269553d240041117a89b 100644
--- a/src/websockets/qwebsocketframe.cpp
+++ b/src/websockets/qwebsocketframe.cpp
@@ -456,7 +456,7 @@ QWebSocketFrame QWebSocketFrame::readFrame(QIODevice *pIoDevice)
             } else {
                 quint64 bytesAvailable = quint64(pIoDevice->bytesAvailable());
                 if (bytesAvailable >= payloadLength) {
-                    frame.m_payload = pIoDevice->read(payloadLength);
+                    frame.m_payload = pIoDevice->read(int(payloadLength));
                     //payloadLength can be safely cast to an integer,
                     //because MAX_FRAME_SIZE_IN_BYTES = MAX_INT
                     if (Q_UNLIKELY(frame.m_payload.length() != int(payloadLength))) {
diff --git a/src/websockets/qwebsocketprotocol.cpp b/src/websockets/qwebsocketprotocol.cpp
index 5cde1a7159483287bdbbd9d7d233b212050fbf61..df87a93cdab626da064d69eeb86fb494ead2d9f4 100644
--- a/src/websockets/qwebsocketprotocol.cpp
+++ b/src/websockets/qwebsocketprotocol.cpp
@@ -193,7 +193,7 @@ QWebSocketProtocol::Version QWebSocketProtocol::versionFromString(const QString
 void QWebSocketProtocol::mask(QByteArray *payload, quint32 maskingKey)
 {
     Q_ASSERT(payload);
-    mask(payload->data(), payload->size(), maskingKey);
+    mask(payload->data(), quint64(payload->size()), maskingKey);
 }
 
 /*!