Bale
Minion
The problem here is that modifying "adj" also modifies "temp", so instead of restoring "adj" to its original values, it keep the modified ones.
Wait, what? How is temp modified by adj? Does setting one record equal to another actually copy a pointer to that record?