C ++: o iterador da lista não é incrementável

Obter este erro ao tentar apagar o último elemento de uma lista. Eu depurei o código e consegui descobrir o que o causa e onde, eis o meu 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
}

Não consigo entender o que estou fazendo de errado ... Alguma sugestão?

questionAnswers(3)

yourAnswerToTheQuestion