Looks like living.h has some extra bits left in it. savethrow is a static variable in living.c. That extern declaration is useless. turn_bonus is declared twice, once is enough. And that learn_prayer_chance is neither defined nor used anywhere. diff -u -r crossfire.orig/include/living.h crossfire/include/living.h --- crossfire.orig/include/living.h 2005-05-31 22:11:39.263284251 +0300 +++ crossfire/include/living.h 2005-05-31 22:11:52.211604660 +0300 @@ -53,9 +53,6 @@ extern int turn_bonus[MAX_STAT + 1]; extern int max_carry[MAX_STAT + 1]; extern int dam_bonus[MAX_STAT + 1]; -extern int savethrow[111]; -extern int turn_bonus[MAX_STAT + 1]; -extern int learn_prayer_chance[MAX_STAT + 1]; extern int learn_spell[]; extern char *restore_msg[NUM_STATS]; extern char *statname[NUM_STATS];