Index: /trunk/BNC/src/bncutils.cpp
===================================================================
--- /trunk/BNC/src/bncutils.cpp	(revision 8645)
+++ /trunk/BNC/src/bncutils.cpp	(revision 8646)
@@ -302,12 +302,8 @@
   gga += QString(",%1,").arg(hei, 2, 'f', 1);
   gga += QString("M,10.000,M,,");
-  int xori;
-
-  char XOR = 0;
-  char Buff[gga.size()];
-  strncpy(Buff, gga.toLatin1().data(), gga.size());
-  int iLen = strlen(Buff);
-  for (xori = 0; xori < iLen; xori++) {
-    XOR ^= (char)Buff[xori];
+
+  unsigned char XOR = 0;
+  for (int ii = 0; ii < gga.length(); ii++) {
+    XOR ^= (unsigned char) gga[ii].toLatin1();
   }
   gga = "$" + gga + QString("*%1").arg(XOR, 2, 16, QLatin1Char('0'));
Index: /trunk/BNC/src/pppRun.cpp
===================================================================
--- /trunk/BNC/src/pppRun.cpp	(revision 8645)
+++ /trunk/BNC/src/pppRun.cpp	(revision 8646)
@@ -692,5 +692,5 @@
   }
 
-  return '$' + nmStr + QString("*%1\n").arg(int(XOR), 0, 16).toUpper();
+  return '$' + nmStr + QString("*%1").arg(XOR, 2, 16, QLatin1Char('0'));
 }
 
