diff --git a/src/cfulist.c b/src/cfulist.c index a55c41f..9a5e536 100644 --- a/src/cfulist.c +++ b/src/cfulist.c @@ -425,9 +425,14 @@ cfulist_delete_data(cfulist_t *list, void *data) { if (list->entries) { for (ptr = list->entries; ptr && ptr->data != data; ptr = ptr->next) ; + if (ptr && ptr->data == data) { - (ptr->prev)->next = ptr->next; - free (ptr); + if (!ptr->prev) { + cfulist_dequeue (list); + } else { + (ptr->prev)->next = ptr->next; + free (ptr); + } } }