diff --git a/core/net/rime/rimeaddr.c b/core/net/rime/rimeaddr.c
index e7d61f312..6d055015c 100644
--- a/core/net/rime/rimeaddr.c
+++ b/core/net/rime/rimeaddr.c
@@ -28,7 +28,7 @@
  *
  * This file is part of the Contiki operating system.
  *
- * $Id: rimeaddr.c,v 1.1 2007/03/15 19:43:07 adamdunkels Exp $
+ * $Id: rimeaddr.c,v 1.2 2007/03/21 23:22:11 adamdunkels Exp $
  */
 
 /**
@@ -41,18 +41,24 @@
 #include "rimeaddr.h"
 
 rimeaddr_t rimeaddr_node_addr;
-const rimeaddr_t rimeaddr_null = {.u16 = 0};
+const rimeaddr_t rimeaddr_null = {.u16 = {0}};
 
 /*---------------------------------------------------------------------------*/
 void
 rimeaddr_copy(rimeaddr_t *dest, const rimeaddr_t *src)
 {
-  dest->u16 = src->u16;
+  dest->u16[0] = src->u16[0];
 }
 /*---------------------------------------------------------------------------*/
 int
 rimeaddr_cmp(const rimeaddr_t *addr1, const rimeaddr_t *addr2)
 {
-  return addr1->u16 == addr2->u16;
+  return addr1->u16[0] == addr2->u16[0];
+}
+/*---------------------------------------------------------------------------*/
+void
+rimeaddr_set_node_addr(rimeaddr_t *t)
+{
+  rimeaddr_copy(&rimeaddr_node_addr, t);
 }
 /*---------------------------------------------------------------------------*/
diff --git a/core/net/rime/rimeaddr.h b/core/net/rime/rimeaddr.h
index ea16b6180..38f17f7e5 100644
--- a/core/net/rime/rimeaddr.h
+++ b/core/net/rime/rimeaddr.h
@@ -28,7 +28,7 @@
  *
  * This file is part of the Contiki operating system.
  *
- * $Id: rimeaddr.h,v 1.1 2007/03/15 19:43:07 adamdunkels Exp $
+ * $Id: rimeaddr.h,v 1.2 2007/03/21 23:22:11 adamdunkels Exp $
  */
 
 /**
@@ -43,11 +43,12 @@
 
 typedef union {
   unsigned char u8[2];
-  unsigned short u16;
+  unsigned short u16[1];
 } rimeaddr_t;
 
 void rimeaddr_copy(rimeaddr_t *dest, const rimeaddr_t *from);
 int rimeaddr_cmp(const rimeaddr_t *addr1, const rimeaddr_t *addr2);
+void rimeaddr_set_node_addr(rimeaddr_t *t);
 
 extern rimeaddr_t rimeaddr_node_addr;