diff --git a/sys/net/routing/rpl/rpl_control_messages.c b/sys/net/routing/rpl/rpl_control_messages.c
index de7f0d514884f49a766e282f77d90944a3b59520..5cbc775b8aad1f2d96f24811e4ceb7021f1bea4a 100644
--- a/sys/net/routing/rpl/rpl_control_messages.c
+++ b/sys/net/routing/rpl/rpl_control_messages.c
@@ -436,7 +436,7 @@ void rpl_send_DAO(rpl_dodag_t *my_dodag, ipv6_addr_t *destination, uint8_t lifet
 
 #if RPL_DEFAULT_MOP == RPL_MOP_NON_STORING_MODE
     rpl_send_opt_transit_buf->length = RPL_OPT_TRANSIT_LEN;
-    memcpy(&rpl_send_opt_transit_buf->parent, rpl_get_my_preferred_parent(), sizeof(ipv6_addr_t));
+    memcpy(&rpl_send_opt_transit_buf->parent, &my_dodag->my_preferred_parent->addr, sizeof(ipv6_addr_t));
     opt_len += RPL_OPT_TRANSIT_LEN_WITH_OPT_LEN;
 #else
     rpl_send_opt_transit_buf->length = (RPL_OPT_TRANSIT_LEN - sizeof(ipv6_addr_t));