C ++: el iterador de lista no se puede incrementar

Obtener este error al intentar borrar el último elemento de una lista. Depuré el código y pude averiguar qué lo causa y dónde, aquí está mi código:

    for(Drop_List_t::iterator i = Drop_System.begin(); i != Drop_System.end() && !Drop_System_Disable; /**/)
{
    if(Player->BoundingBox.Intersect(&(*i)->BoundingBox))
    {
        i = Drop_System.erase(i);
    }

    ++i; //List iterator crashes here if last entry was deleted
}

No puedo entender qué estoy haciendo mal ... ¿Alguna sugerencia?

Respuestas a la pregunta(3)

Su respuesta a la pregunta