Okay, you looked at this a bit and I did too and the semantics are just ugly. This works fine and I'm going to merge it in.