diff --git a/core/net/rpl/rpl-dag.c b/core/net/rpl/rpl-dag.c index baad9946b..bc624cf85 100644 --- a/core/net/rpl/rpl-dag.c +++ b/core/net/rpl/rpl-dag.c @@ -703,7 +703,9 @@ rpl_remove_parent(rpl_dag_t *dag, rpl_parent_t *parent) void rpl_nullify_parent(rpl_dag_t *dag, rpl_parent_t *parent) { - if(parent == dag->preferred_parent) { + /* This function can be called when the preferred parent is NULL, so we + need to handle this condition in order to trigger uip_ds6_defrt_rm. */ + if(parent == dag->preferred_parent || dag->preferred_parent == NULL) { dag->preferred_parent = NULL; dag->rank = INFINITE_RANK; if(dag->joined) {