using System; namespace SOE2 { class Program { static void Main(string[] args) { // vvv--- changing "dynamic" to "var" or "string" here fixes the issue dynamic parsedDocument = ""; var mystery = new FailingClass(); Console.WriteLine("Entering..."); mystery.FailingMethod(parsedDocument); Console.WriteLine("... and we are back!"); Console.ReadLine(); } } public abstract class CommonBase { } // Technically, this class does nothing and deriving from it should be identical to deriving from CommonBase public abstract class FailingClassBase : CommonBase { } // However, deriving from CommonBase instead of FailingClassBase here also fixes the issue // ----------------------------vvvvvvvvvvvvvvvv public class FailingClass : FailingClassBase> { public void FailingMethod(T src) { } } }