Fixed recursive delete