Only delete one list element, not all matching.  Previous behavior guaranteed worst case runtime since it scanned the entire list for every delete.