the following is not the bug but is related. Nav put's the images in the 2nd cell
on the same line. Border widths of cells are suspect here.
<table border width=26 cellspacing=0 cellpadding=0>
 <tr> 
  <td><img src="../images/pxl_white.gif" width=2 height=2></td>
  <td><img src="../images/pxl_white.gif" width=10 height=2><img src="../images/0.gif" width=10 height=2></td>
 </tr>
</table><BR>
the following is related to the bug. Nav put's the images in the last cell of the last
table on the same line.
<table border=0 cellspacing=0 cellpadding=0 valign=TOP>
 <tr>
  <td valign=TOP>
   <table width="175" border="0" cellspacing="0" cellpadding="0">
    <tr valign=TOP>
     <td><img src="../images/0.gif" width=7 height=2></td>
    </tr>
    <tr valign=TOP>
     <td colspan=8 valign=top><a href="../buy/index.htm"><img src="../images/nav_buy_checklist.gif" alt="Buy a home checklist" width=156 height=29 border=0></a><img src="../images/nav_top_left_frag_2.gif" width=19 height=29 alt=""></td>
    </tr>
    <tr>
     <td colspan=3 valign=bottom><img src="../images/pxl_df9f3b.gif" width=156 height=1></td>
    </tr>
   </table></td>
  <td valign="top">
   <table width=525 border=0 cellspacing=0 cellpadding=0>
    <tr> 
     <td bgcolor=White><img src="../images/0.gif" width=20 height=2></td>
          <td bgcolor=White><img src="../images/0.gif" width=20 height=2></td>
          <td bgcolor=White><img src="../images/0.gif" width=20 height=2></td>
          <td bgcolor=White><img src="../images/0.gif" width=20 height=2></td>
          <td bgcolor=White><img src="../images/0.gif" width=67 height=2></td>
          <td bgcolor=White><img src="../images/0.gif" width=81 height=2></td>
          <td bgcolor=White><img src="../images/0.gif" width=77 height=2></td>
          <td bgcolor=White><img src="../images/0.gif" width=63 height=2></td>
          <td bgcolor=White><img src="../images/0.gif" width=20 height=2></td>
          <td bgcolor=White><img src="../images/0.gif" width=19 height=2></td>
          <td bgcolor=White><img src="../images/0.gif" width=101 height=2></td>
          <td><img src="../images/pxl_white.gif" width=15 height=2><img src="../images/0.gif" width=2 height=2></td>
        </tr>
        <tr> 
          <td colspan=12><img src="../images/navtop_buy_pr.gif" width=525 height=18 border=0 alt="" usemap="#topnav" ismap><br>
<img src="../images/dot_black.gif" width=525 height=1><br>
<img src="../images/pxl_df9f3b.gif" width=525 height=2></td>
        </tr>
        </table>
        </td>
        </tr>
        </table><BR>
<TABLE WIDTH="420" BORDER="1" CELLSPACING="1" CELLPADDING="1" BGCOLOR="#cccccc">

<!-- af2_results_elbat.htm - 11/17/98 - 11:12:13 AM -->
<TR valign="TOP">
        <td width="20" align="RIGHT">
        1.&nbsp;</TD>
        <td width="232">
        Some One<BR>
        Joe Banker<br>
        4633 Ocean Avenue<BR>
        San Francisco,&nbsp;
        CA&nbsp;
        94132<BR>
        
        </TD>
        <td width="20"><IMG 
SRC="../images/raptor.jpg" WIDTH =20 HEIGHT=1 BORDER=0></TD>
        <td width="148" align="RIGHT"><IMG 
src="../images/raptor.jpg" border="0" alt="" width="38" height="34"><IMG 
SRC="../images/raptor.jpg" WIDTH =12 HEIGHT=1 BORDER=0><IMG 
src="../images/raptor.jpg" width="38" height="34" border="0" alt=""><IMG 
SRC="../images/raptor.jpg" WIDTH =12 HEIGHT=1 BORDER=0><IMG 
src="../images/raptor.jpg" width="38" height="34" border="0" alt=""></TD>
</TR>

<TR><td></td>
        <TD colspan="3"><IMG 
src="../images/raptor.jpg" width="398" height="1" border="0" alt=""><br>&nbsp;</TD>
</TR>

<!-- af2_results_elbat.htm - 11/17/98 - 11:12:13 AM -->
<TR valign="TOP">
        <td width="20" align="RIGHT">
        2.&nbsp;</TD>
        <td width="232">
        FORECLOSURES AAA HOMES UP TO 50% OFF<BR>
        Real Estate Services<br>
        CA&nbsp;
        00000<BR>
        (000) 000-0000
        </TD>
        <td width="20"><IMG 
SRC="../images/raptor.jpg" WIDTH =20 HEIGHT=1 BORDER=0></TD>
        <td width="148" align="RIGHT"><IMG 
src="../images/raptor.jpg" border="0" alt="" width="38" height="34"><IMG 
SRC="../images/raptor.jpg" WIDTH =12 HEIGHT=1 BORDER=0><IMG 
src="../images/raptor.jpg" width="38" height="34" border="0" alt=""><IMG 
SRC="../images/raptor.jpg" WIDTH =12 HEIGHT=1 BORDER=0><IMG 
src="../images/raptor.jpg" width="38" height="34" border="0" alt=""></TD>
</TR>

</TABLE>
