Fixing more problems with issue #163

This still isn't a perfect fix ofr issue #163, but it's a bit better.

Basically the main problem is that a child doesn't know that an
ancestor's matrix has been changed, and it's kind of a pain to easily
check that without making dozens of updatematrix calls