                         return (response, userInfo)
                     }
                     
-                    let (fetchedResource, error) = self.fetchEntity(entity, withResourceID: resourceID!, usingContext: context, shouldPrefetch: false)
+                    let (fetchedResource, error) = self.fetchEntity(relationshipDescription!.destinationEntity!, withResourceID: resourceID!, usingContext: context, shouldPrefetch: false)
                     
                     // error fetching
                     if error != nil {

            var value: AnyObject?
            
            // one of these will be nil
            let relationshipDescription: NSRelationshipDescription? = entity.relationshipsByName[predicateKey!] as? NSRelationshipDescription
            
            let attributeDescription: NSRelationshipDescription? = entity.attributesByName[predicateKey!] as? NSRelationshipDescription
            
            // validate that key is attribute or relationship
            if (relationshipDescription == nil) && (attributeDescription == nil) {

                        return (response, userInfo)
                    }
                    
                    let (fetchResult, error) = self.fetchEntity(relationshipDescription!.destinationEntity!, withResourceIDs: resourceIDs!, usingContext: context, shouldPrefetch: false)
                    
                    // error fetching
                    if error != nil {
