if not auth_hrn:
             auth_hrn = hrn
         auth_info = self.api.auth.get_auth_info(auth_hrn)
-        record = None
         table = self.api.auth.get_auth_table(auth_hrn)
         records = table.resolve('*', hrn)
-
+        if not records:
+            raise RecordNotFount(hrn)
+        record = records[0]
         # verify_cancreate_credential requires that the member lists
         # (researchers, pis, etc) be filled in
         self.api.fill_record_info(record)
 
                 auth_hrn = hrn
             table = self.api.auth.get_auth_table(auth_hrn)
             records = table.resolve('*', hrn)
+            if not records:
+                raise RecordNotFound(hrn) 
             good_records = []
             for record in records:
                 try:
                     # silently drop the ones that are missing in PL
                     print >> log, "ignoring geni record ", record.get_name(), \
                               " because pl record does not exist"
-                table.remove(record)
+                    table.remove(record)
 
         dicts = [record.as_dict() for record in good_records]
-        if not dicts:
-            raise RecordNotFound(hrn)
 
         return dicts    
             
 
     returns = Parameter(int, "1 if successful")
     
     def call(self, cred, record_dict):
-        self.api.auth.decode_authentication(cred, "update")
+        self.api.auth.check(cred, "update")
         record = GeniRecord(dict = record_dict)
         type = record.get_type()
         self.api.auth.verify_object_permission(record.get_name())
                     update_fields[key] = all_fields[key]
             self.api.plshell.UpdatePerson(self.api.plauth, pointer, update_fields)
 
-         elif type == "node":
+        elif type == "node":
             self.api.plshell.UpdateNode(self.api.plauth, pointer, record.get_pl_info())
 
         else: