--- /dev/null
+Index: clib/cc1100.c
+===================================================================
+--- clib/cc1100.c (revision 373)
++++ clib/cc1100.c (working copy)
+@@ -266,26 +266,25 @@
+ void
+ ccTX(void)
+ {
+- uint8_t cnt = 0xff;
+ EIMSK &= ~_BV(CC1100_INT);
+
+ // Going from RX to TX does not work if there was a reception less than 0.5
+ // sec ago. Due to CCA? Using IDLE helps to shorten this period(?)
+- ccStrobe(CC1100_SIDLE);
+- while(cnt-- && (ccStrobe( CC1100_STX ) & 0x70) != 2)
+- my_delay_us(10);
++
++ while (cc1100_readReg(CC1100_MARCSTATE) != MARCSTATE_TX) {
++ ccStrobe(CC1100_STX);
++ }
+ }
+
+ //--------------------------------------------------------------------
+ void
+ ccRX(void)
+ {
+- uint8_t cnt = 0xff;
++ while (cc1100_readReg(CC1100_MARCSTATE) != MARCSTATE_RX) {
++ ccStrobe(CC1100_SRX);
++ }
+
+- while(cnt-- && (ccStrobe( CC1100_SRX ) & 0x70) != 1)
+- my_delay_us(10);
+ EIMSK |= _BV(CC1100_INT);
+-
+ }
+
+