diff --git a/core/include/flags.h b/core/include/flags.h
index a45027a48a45d8ef260d37451cca302a063e2c5f..f2185946d0920ce401aaac13dea30de3e9e1b9c1 100644
--- a/core/include/flags.h
+++ b/core/include/flags.h
@@ -16,10 +16,10 @@
 #ifndef _FLAGS_H
 #define _FLAGS_H
 
-#define CREATE_SLEEPING 1
-#define AUTO_FREE 2
-#define CREATE_WOUT_YIELD 4
-#define CREATE_STACKTEST 8
+#define CREATE_SLEEPING 	(1)
+#define AUTO_FREE 	        (2)
+#define CREATE_WOUT_YIELD 	(4)
+#define CREATE_STACKTEST 	(8)
 
 /**
  * @}
diff --git a/sys/transceiver/transceiver.c b/sys/transceiver/transceiver.c
index 0bef5158b610425afc6d15bfa4c927263bf4b153..c46f8b63e4138547c71d5a977c822c5fe5df5977 100644
--- a/sys/transceiver/transceiver.c
+++ b/sys/transceiver/transceiver.c
@@ -62,7 +62,7 @@ msg_t msg_buffer[TRANSCEIVER_MSG_BUFFER_SIZE];
 
 uint32_t response; ///< response bytes for messages to upper layer threads
 
-int transceiver_pid; ///< the transceiver thread's pid
+int transceiver_pid = -1; ///< the transceiver thread's pid
 
 static volatile uint8_t rx_buffer_pos = 0;
 static volatile uint8_t transceiver_buffer_pos = 0;
@@ -107,6 +107,11 @@ void transceiver_init(transceiver_type_t t)
 {
     uint8_t i;
 
+    if (transceiver_pid >= 0) {
+        /* do not re-initialize an already running transceiver */
+        return;
+    }
+
     /* Initializing transceiver buffer and data buffer */
     memset(transceiver_buffer, 0, TRANSCEIVER_BUFFER_SIZE);
     memset(data_buffer, 0, TRANSCEIVER_BUFFER_SIZE * PAYLOAD_SIZE);