I have an applicatin the has an mdi parent and an mdi child form. On the child form I call a function that returns an integer value. The function call lookls like this: _rowVersionLF = Common.ReturnSingleIntegerValue(strSQL);

The SqlDataReader instance indirectly created by ExecuteScalar is falsely identified as undisposed by the profiler. The Close method of the SqlDataReader is called, instead of the Dispose method. This causes the profiler to miss that the instance is actually (sort of) disposed (the Dispose method calls Close).

The profiler actually knows that the Close method of the SqlDataReader is a substitute for the Dispose, but in the current version this method is not used to detect that SqlDataReader instances are disposed. This will be improved in a future version.