Fixed: remove_last didn't clear tail's next pointer