diff --git a/src/bluetooth/qbluetoothservicediscoveryagent_winrt.cpp b/src/bluetooth/qbluetoothservicediscoveryagent_winrt.cpp
index 1d98874fe0258f27485a3d6f7640a815653d972f..29ccb290c97d779a1f5a19f38ed32d0818ad689f 100644
--- a/src/bluetooth/qbluetoothservicediscoveryagent_winrt.cpp
+++ b/src/bluetooth/qbluetoothservicediscoveryagent_winrt.cpp
@@ -427,6 +427,9 @@ QBluetoothServiceInfo::Sequence QWinRTBluetoothServiceDiscoveryWorker::readSeque
             BYTE length;
             hr = dataReader->ReadByte(&length);
             Q_ASSERT_SUCCEEDED(hr);
+            remainingLength -= 1;
+            if (bytesRead)
+                *bytesRead += 1;
             HString value;
             hr = dataReader->ReadString(length, value.GetAddressOf());
             Q_ASSERT_SUCCEEDED(hr);
@@ -435,7 +438,7 @@ QBluetoothServiceInfo::Sequence QWinRTBluetoothServiceDiscoveryWorker::readSeque
             result.append(QVariant::fromValue(str));
             remainingLength -= length;
             if (bytesRead)
-                *bytesRead += 2;
+                *bytesRead += length;
             break;
         }
         case TYPE_SEQUENCE: {