diff --git a/groundStation/src/backend/backend.c b/groundStation/src/backend/backend.c
index 86130046e8c28886d8cf577ebc261e06dc657dbb..990249069bb086d472ebd8f5d0c217059d507d6e 100644
--- a/groundStation/src/backend/backend.c
+++ b/groundStation/src/backend/backend.c
@@ -396,6 +396,9 @@ void sendVrpnPacket(struct ucart_vrpn_TrackerData *info) {
         warnx("Big problems. sendVrpnPacket . EncodeUpdate");
         return;
     }
+    if(currMessageID > 65535) {
+       currMessageID = 0; 
+    }
     m.msg_id = currMessageID++;
 
     ssize_t psize;
diff --git a/groundStation/src/backend/packet.c b/groundStation/src/backend/packet.c
index 7dcd2a63526ffc0149f4efd6a24c247045da59f1..020827e58832f8e3a94b1cdf35a0a2ef357ac399 100644
--- a/groundStation/src/backend/packet.c
+++ b/groundStation/src/backend/packet.c
@@ -20,8 +20,7 @@ ssize_t EncodePacket(
 	packet[BEGIN] = BEGIN_CHAR;
 	packet[MTYPE_L] = LSByte16(m->msg_type);
 	packet[MTYPE_H] = MSByte16(m->msg_type);
-	packet[ID_L] = LSByte16(m->msg_id);
-	packet[ID_H] = MSByte16(m->msg_id);
+	memcpy(packet[ID_L], m->msg_id, 2);
 	packet[DLEN_L] = LSByte16(m->data_len);
 	packet[DLEN_H] = MSByte16(m->data_len);
 	memcpy(&packet[HDR_SIZE], data, m->data_len);