diff --git a/analyzere/base_resources.py b/analyzere/base_resources.py
index <HASH>..<HASH> 100644
--- a/analyzere/base_resources.py
+++ b/analyzere/base_resources.py
@@ -2,6 +2,7 @@ from __future__ import division
 import copy
 import json
 import time
+from inspect import isclass
 
 from lazy_object_proxy import Proxy
 import six
@@ -53,8 +54,9 @@ class Reference(Proxy):
         return Reference(self._href)
 
     def __getattribute__(self, name):
-        # Check for class methods and attributes before intercepting Proxied
-        # methods and attributes.
+        # To see if name is an instanced attribute of Reference. Here we can
+        # check the names of the class attributes and then return the instance
+        # attribute with the same name.
 
         attr = Proxy.__getattribute__(self, name)
         if hasattr(Reference, name):
@@ -72,7 +74,14 @@ class Reference(Proxy):
             except AttributeError:
                 pass
 
+        # Check to see if the attribute is a method that is being called.
         if hasattr(attr, '__call__'):
+            # Intercept class method for the Resources, as they should not be
+            # able to update the _id and _href for a reference. Class methods
+            # should never update an instance in place.
+            if isclass(attr.__self__) and issubclass(attr.__self__, Resource):
+                return attr
+
             def newfunc(*args, **kwargs):
                 retval = attr(*args, **kwargs)
                 update_ref(retval)
Adding exception for class methods

- These should not have the ability to update a instance of an object in place and thus should not have the ability to update a reference.