While re-writing a few WebServices for .NET 2.0 i ran across following:

...  
public static void WaitProc(object state, bool timedOut)  
{  
   MyAsyncResult myAsyncResult = (MyAsyncResult)state;  
   myAsyncResult.OriginalCallback.Invoke(myAsyncResult);  
}  
...

This compiles without any problems in Visual Studio .NET 2003 but makes the compiler scream (Invoke cannot be called directly on a delegate) untill you change the lines to the following:

...  
public static void WaitProc(object state, bool timedOut)  
{  
   MyAsyncResult myAsyncResult = (MyAsyncResult)state;  
   myAsyncResult.OriginalCallback(myAsyncResult);  
}  
...