Z-index on list hiding underneath in IE

I have a 2-tier list like this:

<ul id="nav">
<li><a href="#">Register/Enroll</a>
<ul>
<li><a href="#">Search Catalog</a></li>
<li><a href="#">All Courses</a></li>
</ul></li>
etc...

I’m using this drop_down.js file to invoke the second tier onmouseover:

startList = function() {
if (document.all&&document.getElementById) {
navRoot = document.getElementById("nav");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes*;
if (node.nodeName=="LI") {
node.onmouseover=function() {
this.className+=" over";
}
node.onmouseout=function() {
this.className=this.className.replace(" over", "");
}
}
}
}
}
window.onload=startList;

The CSS that makes this happen is as follows:

li ul {
position: absolute;
z-index: 1;
display: none;
}
ul li a {
display: block;
}
li:hover ul, li.over ul {
display: block;
}

The problem is that the first item in the sub-navigation list appears correctly over the first list, but any subsequent links hide under the first list in IE 6 (WTF). I guess IE has a z-index bug issue, so I tried a JavaScript solution and it didn’t work.

Any ideas?