document.body.innerHTML = newBody;
While an annoying bug it cannot be blamed entirely on Safari developers, first of all innerHTML is not part of the specification offered by W3C, so technically speaking Safari does not even have to support it. That said it is supported by IE,Firefox and Opera, the latter two had no problem with the search highlight code either. IE, well IE being IE and worked 50% of the time. Furthermore changing the entire document body in one go is not the best of ideas and as Rasmus put it "Replacing the body is just wrong, you deserve what you get if you crash".
All this said it should be noted that in most other situations innerHTML works just fine in Safari and even the document.body.innerHTML can work, but only on simple documents, so be careful if you need to use it.
That completely fixed my problem, thanks for the advice. I was trying to output control buttons to a div (up down and remove buttons) that would allow you to change the order of elements in a list. When I displayed the list, I would add on to the innerHTML of the div for each list element and set of controls.
Safari tried to be clever and reformatt what i was doing and wrecked my arguments to my functions for all but the last controls, I couldn't figure out for the life of me why, but when I reset the innerHTML to a blank screen and modified it only once, at the end of my loop, it worked like it was supposed to. Interesting to note that firefox has given me no such problems.