<p>Hoping some of you TinyXML++ people can help me out. Really, since you recomended to me before I think you owe me ;)</p>

<p>I have the following code:</p>

<pre><code>   //ticpp::Iterator&lt; ticpp::Element &gt; child( "SetPiece" );
    ticpp::Iterator&lt; ticpp::Node &gt; child("SetPiece");
    GLuint lc_SPieces = 0;
    for(child = child.begin( this ); child != child.end(); child++ )
    {
        lc_SPieces++;
    }
</code></pre>

<p>If I use the top declaration for child I get the error:</p>

<blockquote>
  <p>Unhandled exception at 0x7c812aeb in
  Drawing.exe: Microsoft C++ exception:
  __non_rtti_object @ 0x0012f7b4.</p>
</blockquote>

<p>And I get it in dbgheap.c at this line:</p>

<pre><code>pvBlk = _heap_alloc_dbg(nSize, nBlockUse, szFileName, nLine);
</code></pre>

<p>What's weird is it works with Node, and I know that there are elements in there(I checked using the TinyXML iteration methods).</p>

<p>Has anyone run into this before?</p>

just poking in the dark, i don't know tinyxml, but it seems that a dynamic_cast went wrong. 
If you dynamic_cast<> a pointer, you get a NULL-pointer on failure. However, if you cast to a reference type, there is no concept of a NULL-reference, so the runtime throws this  exception (or bad_type).
MSDN on dynamic_cast, and why it can go wrong
The line you pasted for the exception to occur does not help to clear up the situation, since it identifies the symptom rather than the cause.
Try to identify the cast that went wrong, you should be able to find it if you walk up the stack and find the last method in tinyxml libs or headers. Then you can decide whether tinyxml is worng, or you just applied it the wrong way.
good luck!