+@@ -182,7 +250,11 @@
+
+ enc[l] = dec[l] ^ dec[2];
+
+- ccTX();
++ // enable TX, wait for CCA
++ while (cc1100_readReg(CC1100_MARCSTATE) != MARCSTATE_TX) {
++ ccStrobe(CC1100_STX);
++ }
++
+ if (dec[2] & (1 << 4)) { // BURST-bit set?
+ // According to ELV, devices get activated every 300ms, so send burst for 360ms
+ for(l = 0; l < 3; l++)
+@@ -209,11 +281,12 @@
+ ccStrobe( CC1100_SFTX );
+ ccStrobe( CC1100_SIDLE );
+ ccStrobe( CC1100_SNOP );
+- ccStrobe( CC1100_SRX );
+ }
+
+ if(asksin_on) {
+- ccRX();
++ do {
++ ccStrobe(CC1100_SRX);
++ } while (cc1100_readReg(CC1100_MARCSTATE) != MARCSTATE_RX);
+ } else {
+ set_txrestore();
+ }