diff --git a/resources/user_resource.inc b/resources/user_resource.inc
index f22f102..fa6420e 100644
--- a/resources/user_resource.inc
+++ b/resources/user_resource.inc
@@ -306,8 +306,10 @@ function _user_resource_update($uid, $account) {
     $form_state['values'][$key] = $value;
   }
   // If user is changing name, make sure they have permission.
-  if (isset($account['name']) && $account['name'] != $user->name && !user_access('change own username') || user_access('administer users')) {
-    return services_error(t('You are not allowed to change your username.'), 406);
+  if (isset($account['name']) && $account['name'] != $user->name) {
+    if (!user_access('administer users') && !($GLOBALS['user']->uid == $uid && user_access('change own username'))) {
+      return services_error(t('You are not allowed to change the username.'), 400);
+    }
   }
 
   $form_state['values']['op'] = variable_get('services_user_save_button_resource_update', t('Save'));
