Pull Request from FranklinCoop

I hope this works.
I made this branch and cherry-picked the stuff into. I haven't been using branching well so my master is filled with little fix commits that are badly named and I wanted to try and spare you some of that.

There are a few other things I want to push back but I will try them in a later request.