diff --git a/cpu/mc1322x/contiki-maca.c b/cpu/mc1322x/contiki-maca.c
index 17e975087..6fc554819 100644
--- a/cpu/mc1322x/contiki-maca.c
+++ b/cpu/mc1322x/contiki-maca.c
@@ -295,7 +295,7 @@ PROCESS_THREAD(contiki_maca_process, ev, data)
  	PROCESS_BEGIN();
 
 	while (1) {
-		PROCESS_YIELD();
+		PROCESS_YIELD_UNTIL(ev == PROCESS_EVENT_POLL);
 
 		/* check if there is a request to turn the radio on or off */
 		if(contiki_maca_request_on == 1) {
diff --git a/cpu/mc1322x/lib/maca.c b/cpu/mc1322x/lib/maca.c
index 475f75700..68b506e87 100644
--- a/cpu/mc1322x/lib/maca.c
+++ b/cpu/mc1322x/lib/maca.c
@@ -559,7 +559,8 @@ void insert_at_rx_head(volatile packet_t *p) {
 	} else {
 		rx_head->right = p;
 		p->left = rx_head;
-		rx_head = p; rx_head->left = 0;
+		p->right = 0;
+		rx_head = p;
 	}
 
 //	print_packets("insert at rx head");