Geoff has confirmed that tidy does not mess with intervening whitespace, and certainly doesn't turn it into empty nodes, and isn't likely too in the future. After all, the html spec says such space is meaningless, so he's following the spec. But then acid3 assumes every browser creates these empty whitespace nodes. It's a contradiction. I'm not gonna worry about it. Just know that to pass acid test 0 you have to delete or comment out line 227, and on we go. I don't think this will ever be a problem in the real world. In fact the last-child first-child css constructs are defined to be the last or first "real" nodes under a parent, so if for some reason the browser cranks out empty whitespace nodes those are ignored. They design it to work no matter how your browser behaves. I read the jotform code and it screens for noteType = 1, real nodes. In other words, I think we're fine and we can move on to something else. Karl Dahlke