Hi guys. I've been wrestling with a problem with IE's script engine crashing the last couple of hours, and quite frankly, I'm stumped.

I have a page with a table in it, and inside this table I have a 'tbody' element with a couple of 'tr' elements inside it. Now what I need to do is spawn a new 'tr' element, append it to the inside of the 'tbody' element, and spawn a couple of 'td' elements inside the new 'tr' (using innerHTML unfortunately. The 'td' code is generated server-side, and is very complex, so I can't easily spawn is using createElement.)

In Firefox (1.0 and 1.5) this works just fine, but IE's script engine (6.0) crashes when I try it, and Opera (8.02) doesn't produce the correct result. Here's a code snippet that demonstrates the problem:
HTML Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=windows-1252" />
        <title>Bug repro</title>
        
        <script type="text/javascript">
            function tryIt()
            {
                var body = document.getElementById("TableBody");
                var newRow = document.createElement('tr');
                
                newRow = body.appendChild(newRow);
                newRow.innerHTML = "<td>New column 1</td><td>New column 2</td>";
            }
        </script>
        
    </head>
	<body>
	   <table>
	       <tbody id="TableBody">
	           <tr>
	               <td>Existing column 1</td>
	               <td>Existing column 2</td>
	           </tr>
	       </tbody>
	   </table>
	   <div>
	       <a href="javascript:tryIt()">Try it</a>
	   </div>
	</body>
</html>
Now, is there something fundamentally wrong with what I'm trying to do here, or is this just IE being difficult?

Any help would be most appreciated.