+ rf_asksin_task(void)
+ {
+@@ -83,12 +93,14 @@
+
+ // see if a CRC OK pkt has been arrived
+ if (bit_is_set( CC1100_IN_PORT, CC1100_IN_PIN )) {
+-
+ enc[0] = cc1100_readReg( CC1100_RXFIFO ) & 0x7f; // read len
+
+- if (enc[0]>=MAX_ASKSIN_MSG)
+- enc[0] = MAX_ASKSIN_MSG-1;
+-
++ if (enc[0] >= MAX_ASKSIN_MSG) {
++ // Something went horribly wrong, out of sync?
++ rf_asksin_reset_rx();
++ return;
++ }
++
+ CC1100_ASSERT;
+ cc1100_sendbyte( CC1100_READ_BURST | CC1100_RXFIFO );
+
+@@ -97,12 +109,10 @@