diff --git a/oauth2client/appengine.py b/oauth2client/appengine.py
index 2234cf8..e055216 100644
--- a/oauth2client/appengine.py
+++ b/oauth2client/appengine.py
@@ -440,20 +440,20 @@
     Returns:
       oauth2client.Credentials
     """
+    credentials = None
     if self._cache:
       json = self._cache.get(self._key_name)
       if json:
-        return Credentials.new_from_json(json)
-
-    credentials = None
-    entity = self._get_entity()
-    if entity is not None:
-      credentials = getattr(entity, self._property_name)
-      if credentials and hasattr(credentials, 'set_store'):
-        credentials.set_store(self)
+        credentials = Credentials.new_from_json(json)
+    if credentials is None:
+      entity = self._get_entity()
+      if entity is not None:
+        credentials = getattr(entity, self._property_name)
         if self._cache:
           self._cache.set(self._key_name, credentials.to_json())
 
+    if credentials and hasattr(credentials, 'set_store'):
+      credentials.set_store(self)
     return credentials
 
   def locked_put(self, credentials):
diff --git a/tests/test_oauth2client_appengine.py b/tests/test_oauth2client_appengine.py
index b99bd8c..79657e0 100644
--- a/tests/test_oauth2client_appengine.py
+++ b/tests/test_oauth2client_appengine.py
@@ -323,6 +323,22 @@
     self.assertEqual(None, credentials)
     self.assertEqual(None, memcache.get('foo'))
 
+  def test_get_and_put_set_store_on_cache_retrieval(self):
+    storage = StorageByKeyName(
+      CredentialsModel, 'foo', 'credentials', cache=memcache)
+
+    self.assertEqual(None, storage.get())
+    self.credentials.set_store(storage)
+    storage.put(self.credentials)
+    # Pre-bug 292 old_creds wouldn't have storage, and the _refresh wouldn't
+    # be able to store the updated cred back into the storage.
+    old_creds = storage.get()
+    self.assertEqual(old_creds.access_token, 'foo')
+    old_creds.invalid = True
+    old_creds._refresh(_http_request)
+    new_creds = storage.get()
+    self.assertEqual(new_creds.access_token, 'bar')
+
   def test_get_and_put_ndb(self):
     # Start empty
     storage = StorageByKeyName(
