diff --git a/src/kernel/save.c b/src/kernel/save.c index c47e10e20..45e9902ca 100644 --- a/src/kernel/save.c +++ b/src/kernel/save.c @@ -1346,8 +1346,14 @@ void writefaction(struct gamedata *data, const faction * f) WRITE_SECTION(data->store); for (sf = f->allies; sf; sf = sf->next) { - int no = (sf->faction != NULL) ? sf->faction->no : 0; - int status = alliedfaction(NULL, f, sf->faction, HELP_ALL); + int no; + int status; + + assert(sf->faction); + + no = sf->faction->no; + status = alliedfaction(NULL, f, sf->faction, HELP_ALL); + if (status != 0) { WRITE_INT(data->store, no); WRITE_INT(data->store, sf->status);