diff --git a/nodeaccess.module b/nodeaccess.module
index 38905dd..bc7f649 100644
--- a/nodeaccess.module
+++ b/nodeaccess.module
@@ -920,7 +920,15 @@ function nodeaccess_insert_user_reference($node) {
   // reference field.
   $fields = variable_get('nodeaccess_' . $node->type . '_user_reference', array());
   foreach ($fields as $field_name => $field) {
-    $user_uids = field_get_items('node', $node, $field_name);
+    $user_field_values = field_get_items('node', $node, $field_name);
+    if (!$user_field_values) {
+      continue;
+    }
+    $user_uids = array();
+    foreach ($user_field_values as $value) {
+      $user_uids[] = $value['uid'];
+    }
+
     $user_references = user_load_multiple($user_uids);
     // Add each of the referenced users a form value.
     foreach ($user_references as $user) {
@@ -934,7 +942,7 @@ function nodeaccess_insert_user_reference($node) {
     }
   }
   // Only do the changes if there are users to save.
-  if (count($form_values['uid']) > 0) {
+  if (isset($form_values['uid']) && count($form_values['uid']) > 0) {
     $form_values['nid'] = $node->nid;
     $form_state = array('values' => $form_values);
     _nodeaccess_grants_form_submit(NULL, $form_state);
