diff --git a/src/switch_xml.c b/src/switch_xml.c index 2e7478093f..ec7eddec0a 100644 --- a/src/switch_xml.c +++ b/src/switch_xml.c @@ -222,12 +222,15 @@ SWITCH_DECLARE(switch_status_t) switch_xml_unbind_search_function_ptr(switch_xml switch_thread_rwlock_wrlock(B_RWLOCK); for (ptr = BINDINGS; ptr; ptr = ptr->next) { if (ptr->function == function) { + status = SWITCH_STATUS_SUCCESS; + if (last) { last->next = ptr->next; } else { BINDINGS = ptr->next; + last = NULL; + continue; } - status = SWITCH_STATUS_SUCCESS; } last = ptr; }