Oh the problem is obvious. You have to initialize the local variable `u' /after/ unicode_empty is freed otherwise it doesn't point to the proper start of the free list. I'll check that change in. -Barry