diff --git a/mcs/mcs/membercache.cs b/mcs/mcs/membercache.cs index 0dabf85b80f69..8321d29d09bc1 100644 --- a/mcs/mcs/membercache.cs +++ b/mcs/mcs/membercache.cs @@ -486,9 +486,14 @@ public static MemberSpec FindBaseMember (MemberCore member, out MemberSpec bestC { bestCandidate = null; var container = member.Parent.PartialContainer.Definition; - if (!container.IsInterface) + if (!container.IsInterface) { container = container.BaseType; + // It can happen for a user definition of System.Object + if (container == null) + return null; + } + string name = GetLookupName (member); IList applicable; var member_param = member is IParametersMember ? ((IParametersMember) member).Parameters : null; diff --git a/mcs/tests/test-616.cs b/mcs/tests/test-616.cs index a2804a9c1c7d8..00fe6db9023cb 100644 --- a/mcs/tests/test-616.cs +++ b/mcs/tests/test-616.cs @@ -6,7 +6,10 @@ namespace System { - public class Object {} + public class Object + { + object value_with_no_base; + } public struct Byte {} public struct Int16 {}