We have an application with legacy code that relies on prototype, but we\'ve found it to be too \'heavy\' for most of the places we want to use it and and have found jQuery
I've found the root of this problem to be:
Prototype loads, and because WebKit lacks document.getElementsByClass(), Prototype (insidously) creates it.
jQuery initialization begins, and at the very top, it sets window.$ to jQuery.
During JQuery's initialization, the Sizzle engine (added in 1.3.2?) initializes. As part of its introspection, it checks for, and then tests the functionality of document.getElementsByClass(). As a result, it calls Prototype's impelementation of getElementsByClass(), which depends on window.$ being set to Prototype's $, not jQuery's.
Ultimately, this will need to be fixed in jQuery (see tickets http://bugs.jquery.com/ticket/4365 and 5027). My quick patch was to remove the assignment to window.$ in the top of jQuery's initialization.