It's a very subtle "possible" error that valgrind detected. When I ran it with the small dictionary, I get this:
==224== Conditional jump or move depends on uninitialised value(s)
==224== at 0x401CB1: unload (dictionary.c:145)
==224== by 0x40175F: main (speller.c:152)
==224== Uninitialised value was created by a heap allocation
==224== at ...