There was a fatal thinko, llist_relocate NUST NOT be called on a empty list, the pointers will just point to invaildated memory. This cant be handled by the llist code. The programmer is responsible to take proper actions.