diff --git a/encrypted_fields_user_class.inc b/encrypted_fields_user_class.inc
index 4a8bd0e..0f503f5 100644
--- a/encrypted_fields_user_class.inc
+++ b/encrypted_fields_user_class.inc
@@ -68,7 +68,7 @@ class EncryptedFieldsUserOperation {
     $query = db_select('users', 'u');
     $query->innerJoin('users_roles', 'r', 'u.uid = r.uid');
     $query->fields('u', array('uid'));
-    $query->condition('u.uid', $last_uid, '>');
+    $query->condition('u.uid', $last_uid, '>=');
     $roles = $this->variableGet('encrypted_fields_user_roles', '');
     if (!empty($roles)) {
       foreach (array_filter($roles, array('')) as $values) {
@@ -157,13 +157,16 @@ class EncryptedFieldsUserOperation {
    * Encoding and decoding, words with changing meanings.
    */
   public function operationsFields($user, $operation) {
-    $fields = array_filter($this->variableGet('encrypted_fields_user_fields', ''));
+    $user_info = new EncryptedFieldsUserOperation();
+    $fields = $user_info->fieldsSettings();
+    $fields_encrypt = array_filter($this->variableGet('encrypted_fields_user_fields', ''));
     $edit_user = FALSE;
     foreach ($fields as $key => $fields_value) {
+      $operation = array_key_exists($key, $fields_encrypt) ? 'encrypt' : 'decrypt';
       $lang = field_language('user', $user, $key);
-      if (!empty($fields_value) && !empty($user->$fields_value)) {
+      if (!empty($key) && !empty($user->$key)) {
         if (in_array($key, $this->DefaultFields)) {
-          $value_field = $user->$fields_value;
+          $value_field = $user->$key;
           $value = array(
             'language' => !empty($lang) ? $lang : '',
             'uid' => $user->uid,
@@ -190,17 +193,17 @@ class EncryptedFieldsUserOperation {
             else {
               $this->encryptedFieldUserDelete(
                 array('uid' => $user->uid),
-                array('field_name' => $fields_value)
+                array('field_name' => $key)
               );
             }
           }
-          $user->$fields_value = $field_value;
+          $user->$key = $field_value;
         }
         else {
-          $max_count = count($user->{$fields_value}[$lang]);
+          $max_count = count($user->{$key}[$lang]);
           for ($count = 0; $count < $max_count; $count++) {
-            if (!empty($user->{$fields_value}[$lang][$count])) {
-              $value_field = $user->{$fields_value}[$lang][$count]['value'];
+            if (!empty($user->{$key}[$lang][$count])) {
+              $value_field = $user->{$key}[$lang][$count]['value'];
               $value = array(
                 'language' => !empty($lang) ? $lang : '',
                 'uid' => $user->uid,
@@ -227,11 +230,11 @@ class EncryptedFieldsUserOperation {
                 else {
                   $this->encryptedFieldUserDelete(
                     array('uid' => $user->uid),
-                    array('field_name' => $fields_value)
+                    array('field_name' => $key)
                   );
                 }
               }
-              $user->{$fields_value}[$lang][$count]['value'] = $field_value;
+              $user->{$key}[$lang][$count]['value'] = $field_value;
             }
           }
         }
@@ -357,9 +360,9 @@ class EncryptedFieldsUserOperation {
     $fields = array_filter($this->variableGet('encrypted_fields_user_fields', ''));
     foreach ($fields as $key => $fields_value) {
       $lang = field_language('user', $user, $key);
-      if (!empty($fields_value) && !empty($user->$fields_value)) {
+      if (!empty($key) && !empty($user->$key)) {
         if (in_array($key, $this->DefaultFields)) {
-          $value_field = $user->$fields_value;
+          $value_field = $user->$key;
           $value = array(
             'language' => !empty($lang) ? $lang : '',
             'uid' => $user->uid,
@@ -368,13 +371,13 @@ class EncryptedFieldsUserOperation {
             'value' => $value_field,
           );
           $field_value = $this->operation('decrypt', $value);
-          $user->$fields_value = $field_value;
+          $user->$key = $field_value;
         }
         else {
-          $max_count = count($user->{$fields_value}[$lang]);
+          $max_count = count($user->{$key}[$lang]);
           for ($count = 0; $count < $max_count; $count++) {
-            if (!empty($user->{$fields_value}[$lang][$count])) {
-              $value_field = $user->{$fields_value}[$lang][$count]['value'];
+            if (!empty($user->{$key}[$lang][$count])) {
+              $value_field = $user->{$key}[$lang][$count]['value'];
               $value = array(
                 'language' => !empty($lang) ? $lang : '',
                 'uid' => $user->uid,
@@ -383,8 +386,8 @@ class EncryptedFieldsUserOperation {
                 'value' => $value_field,
               );
               $field_value = $this->operation('decrypt', $value);
-              $user->{$fields_value}[$lang][$count]['value'] = $field_value;
-              $user->{$fields_value}[$lang][$count]['safe_value'] = $field_value;
+              $user->{$key}[$lang][$count]['value'] = $field_value;
+              $user->{$key}[$lang][$count]['safe_value'] = $field_value;
             }
           }
         }
@@ -404,11 +407,11 @@ class EncryptedFieldsUserOperation {
     }
     foreach ($fields as $key => $fields_value) {
       $lang = field_language('user', $user, $key);
-      if (!empty($fields_value) && !empty($user[$fields_value])) {
+      if (!empty($key) && !empty($user[$key])) {
         if (in_array($key, $this->DefaultFields)) {
-          $value_field = $user[$fields_value];
-          if ($account->$fields_value) {
-            $id = $this->encryptedFieldIsset(array('id' => $account->$fields_value));
+          $value_field = $user[$key];
+          if ($account->$key) {
+            $id = $this->encryptedFieldIsset(array('id' => $account->$key));
           }
           $field_value = $this->operation('encrypt', array('value' => $value_field));
           $value = array(
@@ -425,15 +428,15 @@ class EncryptedFieldsUserOperation {
             $value['id'] = $id;
             $field_value = $this->encryptedFieldUserUpdate($value);
           }
-          $user[$fields_value] = $field_value;
+          $user[$key] = $field_value;
         }
         else {
-          $max_count = count($user[$fields_value][$lang]);
+          $max_count = count($user[$key][$lang]);
           for ($count = 0; $count < $max_count; $count++) {
-            if (!empty($user[$fields_value][$lang][$count])) {
-              $value_field = $user[$fields_value][$lang][$count]['value'];
-              if ($account->{$fields_value}[$lang][$count]['value']) {
-                $id = $this->encryptedFieldIsset(array('id' => $account->{$fields_value}[$lang][$count]['value']));
+            if (!empty($user[$key][$lang][$count])) {
+              $value_field = $user[$key][$lang][$count]['value'];
+              if ($account->{$key}[$lang][$count]['value']) {
+                $id = $this->encryptedFieldIsset(array('id' => $account->{$key}[$lang][$count]['value']));
               }
               $field_value = $this->operation('encrypt', array('value' => $value_field));
               $value = array(
@@ -450,7 +453,7 @@ class EncryptedFieldsUserOperation {
                 $value['id'] = $id;
                 $field_value = $this->encryptedFieldUserUpdate($value);
               }
-              $user[$fields_value][$lang][$count]['value'] = $field_value;
+              $user[$key][$lang][$count]['value'] = $field_value;
             }
           }
         }
