diff --git a/graphene/core/fields.py b/graphene/core/fields.py
index 88b2b2da..9f25cdbb 100644
--- a/graphene/core/fields.py
+++ b/graphene/core/fields.py
@@ -55,12 +55,7 @@ class Field(object):
         if resolve_fn:
             return resolve_fn(instance, args, info)
         else:
-            if isinstance(instance, BaseObjectType):
-                return instance.get_field(self.field_name)
-            if hasattr(instance, self.field_name):
-                return getattr(instance, self.field_name)
-            elif hasattr(instance, self.name):
-                return getattr(instance, self.name)
+            return getattr(instance, self.field_name, None)
 
     @memoize
     def get_resolve_fn(self):
diff --git a/graphene/core/types.py b/graphene/core/types.py
index 0912ff98..00f19640 100644
--- a/graphene/core/types.py
+++ b/graphene/core/types.py
@@ -120,7 +120,7 @@ class BaseObjectType(object):
             if not kwargs:
                 return None
         elif type(instance) is cls:
-            instance = instance.instance
+            return instance
 
         return super(BaseObjectType, cls).__new__(cls)
 
@@ -137,9 +137,6 @@ class BaseObjectType(object):
         if self.instance:
             return getattr(self.instance, name)
 
-    def get_field(self, field):
-        return getattr(self.instance, field, None)
-
     @classmethod
     def resolve_objecttype(cls, schema, instance, *_):
         return instance