diff --git a/domain-server/src/DomainGatekeeper.cpp b/domain-server/src/DomainGatekeeper.cpp
index 709c5810e2..6d339852d5 100644
--- a/domain-server/src/DomainGatekeeper.cpp
+++ b/domain-server/src/DomainGatekeeper.cpp
@@ -127,7 +127,8 @@ void DomainGatekeeper::processConnectRequestPacket(QSharedPointer<ReceivedMessag
             << "and machine fingerprint" << nodeConnection.machineFingerprint 
             << "user" << username 
             << "reason" << QString(nodeConnection.connectReason ? "SilentDomainDisconnect" : "Connect")
-            << "previous connection uptime" << nodeConnection.previousConnectionUpTime/USECS_PER_MSEC << "msec";
+            << "previous connection uptime" << nodeConnection.previousConnectionUpTime/USECS_PER_MSEC << "msec"
+            << "sysinfo" << nodeConnection.SystemInfo;
 
         // signal that we just connected a node so the DomainServer can get it a list
         // and broadcast its presence right away
diff --git a/domain-server/src/NodeConnectionData.cpp b/domain-server/src/NodeConnectionData.cpp
index b4aaacd749..9703db39c8 100644
--- a/domain-server/src/NodeConnectionData.cpp
+++ b/domain-server/src/NodeConnectionData.cpp
@@ -36,6 +36,9 @@ NodeConnectionData NodeConnectionData::fromDataStream(QDataStream& dataStream, c
         // now the machine fingerprint
         dataStream >> newHeader.machineFingerprint;
 
+        // and the operating system type
+        dataStream >> newHeader.SystemInfo;
+
         dataStream >> newHeader.connectReason;
 
         dataStream >> newHeader.previousConnectionUpTime;
diff --git a/domain-server/src/NodeConnectionData.h b/domain-server/src/NodeConnectionData.h
index 23eceb0dca..3833f5afd3 100644
--- a/domain-server/src/NodeConnectionData.h
+++ b/domain-server/src/NodeConnectionData.h
@@ -31,9 +31,9 @@ public:
     QString placeName;
     QString hardwareAddress;
     QUuid machineFingerprint;
+    QString SystemInfo;
     quint32 connectReason;
     quint64 previousConnectionUpTime;
-
     QByteArray protocolVersion;
 };
 
diff --git a/libraries/networking/src/NodeList.cpp b/libraries/networking/src/NodeList.cpp
index 3d367bc761..96b713c583 100644
--- a/libraries/networking/src/NodeList.cpp
+++ b/libraries/networking/src/NodeList.cpp
@@ -418,6 +418,20 @@ void NodeList::sendDomainServerCheckIn() {
             auto accountManager = DependencyManager::get<AccountManager>();
             packetStream << FingerprintUtils::getMachineFingerprint();
 
+            QString systemInfo;
+#if defined Q_OS_WIN
+            systemInfo = "OS:Windows";
+#elif defined Q_OS_OSX
+            systemInfo = "OS:OSX";
+#elif defined Q_OS_LINUX
+            systemInfo = "OS:Linux";
+#elif defined Q_OS_ANDROID
+            systemInfo = "OS:Android";
+#else
+            systemInfo = "OS:Unknown";
+#endif
+            packetStream << systemInfo;
+
             packetStream << _connectReason;
 
             if (_nodeDisconnectTimestamp < _nodeConnectTimestamp) {
diff --git a/libraries/networking/src/udt/PacketHeaders.cpp b/libraries/networking/src/udt/PacketHeaders.cpp
index 30066b68e8..e434867c9a 100644
--- a/libraries/networking/src/udt/PacketHeaders.cpp
+++ b/libraries/networking/src/udt/PacketHeaders.cpp
@@ -72,7 +72,7 @@ PacketVersion versionForPacketType(PacketType packetType) {
             return static_cast<PacketVersion>(DomainConnectionDeniedVersion::IncludesExtraInfo);
 
         case PacketType::DomainConnectRequest:
-            return static_cast<PacketVersion>(DomainConnectRequestVersion::HasReason);
+            return static_cast<PacketVersion>(DomainConnectRequestVersion::HasSystemInfo);
 
         case PacketType::DomainServerAddedNode:
             return static_cast<PacketVersion>(DomainServerAddedNodeVersion::PermissionsGrid);
diff --git a/libraries/networking/src/udt/PacketHeaders.h b/libraries/networking/src/udt/PacketHeaders.h
index 93a5d4e2b4..a244399c5a 100644
--- a/libraries/networking/src/udt/PacketHeaders.h
+++ b/libraries/networking/src/udt/PacketHeaders.h
@@ -346,7 +346,8 @@ enum class DomainConnectRequestVersion : PacketVersion {
     HasMachineFingerprint,
     AlwaysHasMachineFingerprint,
     HasTimestamp,
-    HasReason
+    HasReason,
+    HasSystemInfo
 };
 
 enum class DomainConnectionDeniedVersion : PacketVersion {