Ok I now convert foo-bar to fooBar, as you suggest, and as the acid test 0 suggests, but I think it's wweird. You say you're not finding the right properties in penultimate, but oh boy it's very subtle. There are several problems at play. The selector we're looking for is #instructions:last-child, and I had to read some of the MIT code to see what that meant. It means the node with id=instructions, and it has to be the last nontrivial child of its parent, where nontrivial beans nodeType = 1. So a silly empty whitespace node doesn't count. At the time the acid test runs, and at the time it calls getComputedStyle() to make its calculation, it has already removed the paragraph after instructions, and the instructional paragraph is indeed the last child of its parent. So getComputedStyle creates a style object for this node, and it should have whiteSpace set properly, but it's just a dynamically created style node, it's not the actual style attached to the node. That style we might be messing with, might change it to green etc. getcomputedStyle simply tells you what the style would be, right now, if all the rules were applied. So I'm starting to unravel that but there's another problem. After this test runs, and succeeds or fails, another script runs and does a document.write which adds all sorts of nodes to body. So now the browse is done, and you get into jdb, and you try to reproduce this stuff, but you can't, because instructions isn't the last child of its parent any more. It was but it isn't any more, so the machinery looks like it's not working but it works just fine. So - I think we are just one step away from test 0 passing. The test expects a blank node between the two paragraphs, a node corrresponding to the newline character, an empty node, a node of nodeType 0, but tidy doesn't give us this node, so nothing lines up. I asked Geoff about this and am waiting for his reply. If tidy doesn't give us those nodes, then acid test 0 will never pass. Karl Dahlke