.after() method bug?

.after() method bug?

I'm working on a navigation menu where I want to insert some html after a UL element.

Here's the statement:
  1. selUL.eq(x+1).after('<b>hello</b></div><div class="subMenu">');
I'm trying to insert it after the following <ul> element:
  1. <div class="subMenu">
  2. <ul class="crops">
  3.  <li class="subnavHead">Crops</li>
  4.  <li><a href="#">Sunflowers</a></li>
  5.  <li><a href="#">Wheat</a></li>
  6. </ul>
It seems to know where to put the HTML, but it places the wrong HTML after the <ul>.  After the statement runs I see:
  1. <b>hello</b><div class="subMenu"></div>
Instead of:
  1. <b>hello</b></div><div class="subMenu">
It's like it's trying to auto correct me.  I need it to print everything exactly as I have it, otherwise my navigation won't divide into separate columns.  Anyone have an idea why it's doing this? If I remove the <div> elements and just use the <b> element it works fine.

EDIT: After some more testing, the After method seems to strip out any closing elements not yet opened (</div>) and automatically closes any elements opened but not closed (<div class="subMenu">). Anyone know of a way to stop this from happening?