Does Mono evaluate equality of objects differently then MS .NET

Hello.

I have a generic container that has a past and present value stored as objects.

The container currently has bool types. Past and present are both true.

object a = past;
object b = present

bool same = a == b;

in the Visual Studio debugger I see the following in the watch window

a -> shows true
b -> shows true

a == b -> shows true
same =-> shows false

However, if I use .Equals instead of equality I get

a  -> shows true
b  -> shows true

a == b -> shows true
same  -> shows true

So my question is:

Is there a very critical difference between the Mono and MS Runtime?
Is there a bug in the watch window of the VS debugger?

Thanks!

When you run

 a == b

this performs a reference check since you have object type, regardless the content.

When you use Equals, you test the content of the object.