Index: /trunk/Mars/mcore/checksum.h
===================================================================
--- /trunk/Mars/mcore/checksum.h	(revision 16562)
+++ /trunk/Mars/mcore/checksum.h	(revision 16563)
@@ -1,6 +1,4 @@
 #ifndef MARS_checksum
 #define MARS_checksum
-
-#include <arpa/inet.h>
 
 namespace std
@@ -67,5 +65,5 @@
         }
 
-        const uint32_t *sbuf = reinterpret_cast<const uint32_t*>(buf);
+        const uint16_t *sbuf = reinterpret_cast<const uint16_t *>(buf);
 
         uint32_t *hilo  = reinterpret_cast<uint32_t*>(&buffer);
@@ -84,11 +82,13 @@
         while (1)
         {
+            if (sbuf==end)
+                break;
+
             hilo[0] += ntohs(*sbuf++);
+
             if (sbuf==end)
                 break;
 
             hilo[1] += ntohs(*sbuf++);
-            if (sbuf==end)
-                break;
         }
 
