--- core/Sys/plUuid.cpp.orig
+++ core/Sys/plUuid.cpp
@@ -69,6 +69,9 @@ void plUuid::read(const unsigned char* buffer) {
     fData1 = *(unsigned int*  )(buffer    );
     fData2 = *(unsigned short*)(buffer + 4);
     fData3 = *(unsigned short*)(buffer + 6);
+    fData1 = LESWAP32(fData1);
+    fData2 = LESWAP16(fData2);
+    fData3 = LESWAP16(fData3);
     memcpy(fData4, buffer + 8, 8);
 }
 
@@ -80,9 +83,9 @@ void plUuid::write(hsStream* S) {
 }
 
 void plUuid::write(unsigned char* buffer) const {
-    *(unsigned int*  )(buffer    ) = fData1;
-    *(unsigned short*)(buffer + 4) = fData2;
-    *(unsigned short*)(buffer + 6) = fData3;
+    *(unsigned int*  )(buffer    ) = LESWAP32(fData1);
+    *(unsigned short*)(buffer + 4) = LESWAP16(fData2);
+    *(unsigned short*)(buffer + 6) = LESWAP16(fData3);
     memcpy(buffer + 8, fData4, 8);
 }
 
--- net/auth/pnAuthClient.cpp.orig	2011-11-08 10:52:52.000000000 -0600
+++ net/auth/pnAuthClient.cpp	2011-11-08 10:52:52.000000000 -0600
@@ -64,6 +64,7 @@
     uint16_t msgId;
 
     sock->recv(&msgId, sizeof(uint16_t));
+    msgId = LESWAP16(msgId);
     const pnNetMsg* msgDesc = GET_Auth2Cli(msgId);
     if (msgDesc == NULL) {
         plDebug::Error("Got invalid message ID (%u)", msgId);
@@ -383,13 +384,13 @@
     uint8_t connectHeader[51];  // ConnectHeader + AuthConnectHeader
     /* Begin ConnectHeader */
     *(uint8_t* )(connectHeader     ) = kConnTypeCliToAuth;
-    *(uint16_t*)(connectHeader +  1) = 31;
-    *(uint32_t*)(connectHeader +  3) = fBuildId;
-    *(uint32_t*)(connectHeader +  7) = fBuildType;
-    *(uint32_t*)(connectHeader + 11) = fBranchId;
+    *(uint16_t*)(connectHeader +  1) = LESWAP16(31);
+    *(uint32_t*)(connectHeader +  3) = LESWAP32(fBuildId);
+    *(uint32_t*)(connectHeader +  7) = LESWAP32(fBuildType);
+    *(uint32_t*)(connectHeader + 11) = LESWAP32(fBranchId);
     fProductId.write(connectHeader + 15);
     /* Begin AuthConnectHeader */
-    *(uint32_t*)(connectHeader + 31) = 20;
+    *(uint32_t*)(connectHeader + 31) = LESWAP32(20);
     memset(connectHeader + 35, 0, 16);
     fSock->send(connectHeader, 51);
 
@@ -437,6 +438,7 @@
     } else if (msg == kNetCliSrv2CliError) {
         uint32_t errorCode;
         fSock->recv(&errorCode, sizeof(uint32_t));
+        errorCode = LESWAP32(errorCode);
         delete fSock;
         fSock = NULL;
         plDebug::Error("Error connecting to Auth server: %s",
--- net/pnSocket.cpp.orig
+++ net/pnSocket.cpp
@@ -338,11 +338,11 @@ static void RecvBasic(pnSocket* sock, msgparm_t& data,
         } else if (size == 2) {
             uint16_t v;
             sock->recv(&v, sizeof(uint16_t));
-            data.fUint = v;
+            data.fUint = LESWAP16(v);
         } else if (size == 4) {
             uint32_t v;
             sock->recv(&v, sizeof(uint32_t));
-            data.fUint = v;
+            data.fUint = LESWAP32(v);
         }
 
 #ifdef COMMDEBUG
@@ -385,10 +385,10 @@ static void SendBasic(unsigned char*& buf, const msgparm_t& data,
             *(uint8_t*)buf = (uint8_t)data.fUint;
             buf += sizeof(uint8_t);
         } else if (size == 2) {
-            *(uint16_t*)buf = (uint16_t)data.fUint;
+            *(uint16_t*)buf = (uint16_t)LESWAP16(data.fUint);
             buf += sizeof(uint16_t);
         } else if (size == 4) {
-            *(uint32_t*)buf = data.fUint;
+            *(uint32_t*)buf = LESWAP32(data.fUint);
             buf += sizeof(uint32_t);
         }
 
@@ -439,7 +439,7 @@ bool pnSocket::sendMsg(const msgparm_t* data, const pnNetMsg* msg)
     size_t bufSize = sizeof(uint16_t) + NCMessageSize(data, msg);
     unsigned char* buffer = new unsigned char[bufSize];
     unsigned char* bp = buffer;
-    *(uint16_t*)bp = msg->fMsgId;
+    *(uint16_t*)bp = LESWAP16(msg->fMsgId);
     bp += sizeof(uint16_t);
 
     unsigned int size = 0;
@@ -454,9 +454,13 @@ bool pnSocket::sendMsg(const msgparm_t* data, const pnNetMsg* msg)
         case kFieldString:
             {
                 uint16_t len = plwcslen(data[i].fString);
-                *(uint16_t*)bp = len;
+                *(uint16_t*)bp = LESWAP16(len);
                 bp += sizeof(uint16_t);
                 memcpy(bp, data[i].fString, len * sizeof(pl_wchar_t));
+#ifdef WORDS_BIGENDIAN
+                for (size_t j=0; j<len; j++)
+                    bp[j] = LESWAP16(bp[j]);
+#endif
                 bp += len * sizeof(pl_wchar_t);
 #ifdef COMMDEBUG
                 plDebug::Debug("     -> Str: %s", plString(data[i].fString, len).cstr());
@@ -466,7 +470,7 @@ bool pnSocket::sendMsg(const msgparm_t* data, const pnNetMsg* msg)
         case kFieldVarCount:
             size = field->fSize;
             count = data[i].fUint;
-            *(uint32_t*)bp = count;
+            *(uint32_t*)bp = LESWAP32(count);
             bp += sizeof(uint32_t);
 #ifdef COMMDEBUG
             plDebug::Debug("     -> Count: %d", count);
@@ -540,8 +544,13 @@ msgparm_t* pnSocket::recvMsg(const pnNetMsg* msg)
             {
                 uint16_t len;
                 recv(&len, sizeof(uint16_t));
+                len = LESWAP16(len);
                 pl_wchar_t* str = new pl_wchar_t[len + 1];
                 recv(str, len * sizeof(pl_wchar_t));
+#ifdef WORDS_BIGENDIAN
+                for (size_t j=0; j<len; j++)
+                    str[j] = LESWAP16(str[j]);
+#endif
                 str[len] = 0;
                 data[i].fString = str;
 #ifdef COMMDEBUG
@@ -552,7 +561,7 @@ msgparm_t* pnSocket::recvMsg(const pnNetMsg* msg)
         case kFieldVarCount:
             size = field->fSize;
             recv(&count, sizeof(uint32_t));
-            data[i].fUint = count;
+            data[i].fUint = LESWAP32(count);
 #ifdef COMMDEBUG
             plDebug::Debug("     <- Count: %d", count);
 #endif
--- net/file/pnFileClient.cpp.orig	2011-11-08 10:52:52.000000000 -0600
+++ net/file/pnFileClient.cpp	2011-11-08 10:52:52.000000000 -0600
@@ -115,6 +115,8 @@
 
     sock->recv(&header.fMsgSize, sizeof(header.fMsgSize));
     sock->recv(&header.fMsgId, sizeof(header.fMsgId));
+    header.fMsgSize = LESWAP32(header.fMsgSize);
+    header.fMsgId = LESWAP32(header.fMsgId);
     uint8_t* msgbuf = new uint8_t[header.fMsgSize - 8];
     uint32_t read_data = 0;
     while (read_data < header.fMsgSize - 8)
@@ -235,13 +237,13 @@
     uint8_t connectHeader[43];  // ConnectHeader + FileConnectHeader
     /* Begin ConnectHeader */
     *(uint8_t* )(connectHeader     ) = kConnTypeCliToFile;
-    *(uint16_t*)(connectHeader +  1) = 31;
+    *(uint16_t*)(connectHeader +  1) = LESWAP16(31);
     *(uint32_t*)(connectHeader +  3) = 0;
-    *(uint32_t*)(connectHeader +  7) = fBuildType;
-    *(uint32_t*)(connectHeader + 11) = fBranchId;
+    *(uint32_t*)(connectHeader +  7) = LESWAP32(fBuildType);
+    *(uint32_t*)(connectHeader + 11) = LESWAP32(fBranchId);
     fProductId.write(connectHeader + 15);
     /* Begin FileConnectHeader */
-    *(uint32_t*)(connectHeader + 31) = 12;
+    *(uint32_t*)(connectHeader + 31) = LESWAP32(12);
     *(uint32_t*)(connectHeader + 35) = 0;
     *(uint32_t*)(connectHeader + 39) = 0;
     fSock->send(connectHeader, 43);
@@ -265,9 +267,9 @@
 void pnFileClient::sendPingRequest(uint32_t pingTimeMs)
 {
     uint8_t msgbuf[12];
-    *(uint32_t*)(msgbuf    ) = 12;                      // Msg size
-    *(uint32_t*)(msgbuf + 4) = kCli2File_PingRequest;   // Msg ID
-    *(uint32_t*)(msgbuf + 8) = pingTimeMs;              // Ping time
+    *(uint32_t*)(msgbuf    ) = LESWAP32(12);                    // Msg size
+    *(uint32_t*)(msgbuf + 4) = LESWAP32(kCli2File_PingRequest); // Msg ID
+    *(uint32_t*)(msgbuf + 8) = LESWAP32(pingTimeMs);            // Ping time
     fSock->send(msgbuf, 12);
 }
 
@@ -275,9 +277,9 @@
 {
     uint32_t transId = nextTransId();
     uint8_t msgbuf[12];
-    *(uint32_t*)(msgbuf    ) = 12;                          // Msg size
-    *(uint32_t*)(msgbuf + 4) = kCli2File_BuildIdRequest;    // Msg ID
-    *(uint32_t*)(msgbuf + 8) = transId;                     // Trans ID
+    *(uint32_t*)(msgbuf    ) = LESWAP32(12);                        // Msg size
+    *(uint32_t*)(msgbuf + 4) = LESWAP32(kCli2File_BuildIdRequest);  // Msg ID
+    *(uint32_t*)(msgbuf + 8) = LESWAP32(transId);                   // Trans ID
     fSock->send(msgbuf, 12);
     return transId;
 }
@@ -289,12 +291,12 @@
 
     uint32_t transId = nextTransId();
     uint8_t msgbuf[536];
-    *(uint32_t*)(msgbuf    ) = 536;                         // Msg size
-    *(uint32_t*)(msgbuf + 4) = kCli2File_ManifestRequest;   // Msg ID
-    *(uint32_t*)(msgbuf + 8) = transId;                     // Trans ID
+    *(uint32_t*)(msgbuf    ) = LESWAP32(536);                       // Msg size
+    *(uint32_t*)(msgbuf + 4) = LESWAP32(kCli2File_ManifestRequest); // Msg ID
+    *(uint32_t*)(msgbuf + 8) = LESWAP32(transId);                   // Trans ID
     memcpy(msgbuf + 12, wgroup.data(), (len >= 260 ? 259 : len) * sizeof(pl_wchar_t));
-    *(pl_wchar_t*)(msgbuf + 530) = 0;                       // Nul terminator
-    *(uint32_t*)(msgbuf + 532) = buildId;                   // Build ID
+    *(pl_wchar_t*)(msgbuf + 530) = 0;                               // Nul terminator
+    *(uint32_t*)(msgbuf + 532) = LESWAP32(buildId);                 // Build ID
     fSock->send(msgbuf, 536);
     return transId;
 }
@@ -306,12 +308,12 @@
 
     uint32_t transId = nextTransId();
     uint8_t msgbuf[536];
-    *(uint32_t*)(msgbuf    ) = 536;                             // Msg size
-    *(uint32_t*)(msgbuf + 4) = kCli2File_FileDownloadRequest;   // Msg ID
-    *(uint32_t*)(msgbuf + 8) = transId;                         // Trans ID
+    *(uint32_t*)(msgbuf    ) = LESWAP32(536);                           // Msg size
+    *(uint32_t*)(msgbuf + 4) = LESWAP32(kCli2File_FileDownloadRequest); // Msg ID
+    *(uint32_t*)(msgbuf + 8) = LESWAP32(transId);                       // Trans ID
     memcpy(msgbuf + 12, wfilename.data(), (len >= 260 ? 259 : len) * sizeof(pl_wchar_t));
-    *(pl_wchar_t*)(msgbuf + 530) = 0;                           // Nul terminator
-    *(uint32_t*)(msgbuf + 532) = buildId;                       // Build ID
+    *(pl_wchar_t*)(msgbuf + 530) = 0;                                   // Nul terminator
+    *(uint32_t*)(msgbuf + 532) = LESWAP32(buildId);                     // Build ID
     fSock->send(msgbuf, 536);
     return transId;
 }
@@ -319,20 +321,20 @@
 void pnFileClient::sendManifestEntryAck(uint32_t transId, uint32_t readerId)
 {
     uint8_t msgbuf[16];
-    *(uint32_t*)(msgbuf     ) = 16;                         // Msg size
-    *(uint32_t*)(msgbuf +  4) = kCli2File_ManifestEntryAck; // Msg ID
-    *(uint32_t*)(msgbuf +  8) = transId;                    // Trans ID
-    *(uint32_t*)(msgbuf + 12) = readerId;                   // Reader ID
+    *(uint32_t*)(msgbuf     ) = LESWAP32(16);                           // Msg size
+    *(uint32_t*)(msgbuf +  4) = LESWAP32(kCli2File_ManifestEntryAck);   // Msg ID
+    *(uint32_t*)(msgbuf +  8) = LESWAP32(transId);                      // Trans ID
+    *(uint32_t*)(msgbuf + 12) = LESWAP32(readerId);                     // Reader ID
     fSock->send(msgbuf, 16);
 }
 
 void pnFileClient::sendFileDownloadChunkAck(uint32_t transId, uint32_t readerId)
 {
     uint8_t msgbuf[16];
-    *(uint32_t*)(msgbuf     ) = 16;                             // Msg size
-    *(uint32_t*)(msgbuf +  4) = kCli2File_FileDownloadChunkAck; // Msg ID
-    *(uint32_t*)(msgbuf +  8) = transId;                        // Trans ID
-    *(uint32_t*)(msgbuf + 12) = readerId;                       // Reader ID
+    *(uint32_t*)(msgbuf     ) = LESWAP32(16);                               // Msg size
+    *(uint32_t*)(msgbuf +  4) = LESWAP32(kCli2File_FileDownloadChunkAck);   // Msg ID
+    *(uint32_t*)(msgbuf +  8) = LESWAP32(transId);                          // Trans ID
+    *(uint32_t*)(msgbuf + 12) = LESWAP32(readerId);                         // Reader ID
     fSock->send(msgbuf, 16);
 }
 
--- net/game/pnGameClient.cpp.orig	2011-11-08 10:52:52.000000000 -0600
+++ net/game/pnGameClient.cpp	2011-11-08 10:52:52.000000000 -0600
@@ -35,6 +35,7 @@
     uint16_t msgId;
 
     sock->recv(&msgId, sizeof(uint16_t));
+    msgId = LESWAP16(msgId);
     const pnNetMsg* msgDesc = GET_Game2Cli(msgId);
     if (msgDesc == NULL) {
         plDebug::Error("Got invalid message ID (%u)", msgId);
@@ -149,13 +150,13 @@
     uint8_t connectHeader[67];  // ConnectHeader + GameConnectHeader
     /* Begin ConnectHeader */
     *(uint8_t* )(connectHeader     ) = kConnTypeCliToGame;
-    *(uint16_t*)(connectHeader +  1) = 31;
-    *(uint32_t*)(connectHeader +  3) = fBuildId;
-    *(uint32_t*)(connectHeader +  7) = fBuildType;
-    *(uint32_t*)(connectHeader + 11) = fBranchId;
+    *(uint16_t*)(connectHeader +  1) = LESWAP16(31);
+    *(uint32_t*)(connectHeader +  3) = LESWAP32(fBuildId);
+    *(uint32_t*)(connectHeader +  7) = LESWAP32(fBuildType);
+    *(uint32_t*)(connectHeader + 11) = LESWAP32(fBranchId);
     fProductId.write(connectHeader + 15);
     /* Begin GameConnectHeader */
-    *(uint32_t*)(connectHeader + 31) = 36;
+    *(uint32_t*)(connectHeader + 31) = LESWAP32(36);
     fAccountId.write(connectHeader + 35);
     fAgeId.write(connectHeader + 51);
     fSock->send(connectHeader, 67);
@@ -204,6 +205,7 @@
     } else if (msg == kNetCliSrv2CliError) {
         uint32_t errorCode;
         fSock->recv(&errorCode, sizeof(uint32_t));
+        errorCode = LESWAP32(errorCode);
         delete fSock;
         fSock = NULL;
         plDebug::Error("Error connecting to Game server: %s",
--- net/gate/pnGateKeeperClient.cpp.orig	2011-11-08 10:52:52.000000000 -0600
+++ net/gate/pnGateKeeperClient.cpp	2011-11-08 10:52:52.000000000 -0600
@@ -33,6 +33,7 @@
 {
     uint16_t msgId;
     sock->recv(&msgId, sizeof(uint16_t));
+    msgId = LESWAP16(msgId);
     const pnNetMsg* msgDesc = GET_GateKeeper2Cli(msgId);
     if (msgDesc == NULL) {
         plDebug::Error("Got invalid message ID (%u)", msgId);
@@ -117,13 +118,13 @@
     uint8_t connectHeader[51];  // ConnectHeader + GateKeeperConnectHeader
     /* Begin ConnectHeader */
     *(uint8_t* )(connectHeader     ) = kConnTypeCliToGateKeeper;
-    *(uint16_t*)(connectHeader +  1) = 31;
-    *(uint32_t*)(connectHeader +  3) = fBuildId;
-    *(uint32_t*)(connectHeader +  7) = fBuildType;
-    *(uint32_t*)(connectHeader + 11) = fBranchId;
+    *(uint16_t*)(connectHeader +  1) = LESWAP16(31);
+    *(uint32_t*)(connectHeader +  3) = LESWAP32(fBuildId);
+    *(uint32_t*)(connectHeader +  7) = LESWAP32(fBuildType);
+    *(uint32_t*)(connectHeader + 11) = LESWAP32(fBranchId);
     fProductId.write(connectHeader + 15);
     /* Begin GateKeeperConnectHeader */
-    *(uint32_t*)(connectHeader + 31) = 20;
+    *(uint32_t*)(connectHeader + 31) = LESWAP32(20);
     memset(connectHeader + 35, 0, 16);
     fSock->send(connectHeader, 51);
 
@@ -171,6 +172,7 @@
     } else if (msg == kNetCliSrv2CliError) {
         uint32_t errorCode;
         fSock->recv(&errorCode, sizeof(uint32_t));
+        errorCode = LESWAP32(errorCode);
         delete fSock;
         fSock = NULL;
         plDebug::Error("Error connecting to GateKeeper server: %s",