```
        Console.WriteLine(string.CompareOrdinal("aaaaa", 3, "bbbb", 1, 0));
        Console.WriteLine(string.CompareOrdinal("aaaaa", 1, "bbbb", 3, 0));
        Console.WriteLine(string.CompareOrdinal("aaaaa", 1, "bbbb", 2, 0));

```

When I compile and run this code, sometimes it prints

```
0
0
0

```

(what is expected)
and sometimes

```
-1
-1
0

```

(what is really strange, as 2 empty substrings must be equal) 

The second kind of output happens in one of my programs, and I have no idea why. I'm compiling it for .NET 4.5.1 AnyCpu with VS2013. Have anyone experienced similar bug? Any idea, why it might happen?