diff --git a/src/crashlog.cpp b/src/crashlog.cpp --- a/src/crashlog.cpp +++ b/src/crashlog.cpp @@ -211,9 +211,7 @@ bool CrashLog::WriteSavegame(char *filen if (_m == NULL) return false; try { - GamelogStartAction(GLAT_EMERGENCY); GamelogEmergency(); - GamelogStopAction(); seprintf(filename, filename_last, "%scrash.sav", _personal_dir); diff --git a/src/gamelog.cpp b/src/gamelog.cpp --- a/src/gamelog.cpp +++ b/src/gamelog.cpp @@ -334,8 +334,11 @@ static LoggedChange *GamelogChange(Gamel */ void GamelogEmergency() { - assert(_gamelog_action_type == GLAT_EMERGENCY); + /* Terminate any active action */ + if (_gamelog_action_type != GLAT_NONE) GamelogStopAction(); + GamelogStartAction(GLAT_EMERGENCY); GamelogChange(GLCT_EMERGENCY); + GamelogStopAction(); } /** Finds out if current game is a loaded emergency savegame.