分からない事があるので、質問です。

if(m_Heap.find(Text)!=m_Heap.end()){
return(true);
}
else{
return(false);
}

VC++.NETのSTLのMapを用いて上記のソースを記述したのですが、
trueが返る筈の場所でfalseが帰ってしまいます。
で、トレース実行してみたところ

if(m_Heap.find(Text)!=m_Heap.end()){
(1)return(true);
}
else{
(2)return(false);
}

と、何故か実行されるステートメントの矢印が移動します。
こんな事は、普通ありえないと思うのですが何か原因があるのでしょうか?