Fix #429

I  *Think* this is a sane way to do this, I will run it by some smart
people after it is up on github, if they think it is not sane I will
revert this.