C# 5.0 adds asynchronous methods [1] and caller info attributes [2] to the language. They also changed respectively fixed the way foreach loop variables are captured in closures [3] and changed the overload resolution algorithm [3] and argument evaluation order [3].
[1] http://msdn.microsoft.com/library/hh191443.aspx