public class BaseList<SubType> { // without this field instantiation everything works fine. object obj = new object (); } public class XXX : BaseList<object> { } public class Crash { public static void Main() { // After creating an array, instantiation got broken. XXX [] arr = new XXX [0]; // this array creation is OK // BaseList<object> [] arr = new BaseList<object> [0]; new BaseList<object> (); // even this causes SISSEGV } }