Changed list storage temp value registration.

Previously, temporary values registered during a recursion were added to a
std::list as VALUE and not VALUE*.  While this would keep the GC from
collecting them, this could cause problems because the address registered was
on the stack and might go out of scope (and then cause invalid read errors.

This fixes the only valgrind problem I could find (which I was able to get by going back to p195 again).  Not sure if it will fix everything you're seeing, but it was a pretty major problem, so it's possible this was the cause of your numerous valgrind errors.