diff --git a/auth/services_oauth/services_oauth.inc b/auth/services_oauth/services_oauth.inc
index dcef641..0565493 100644
--- a/auth/services_oauth/services_oauth.inc
+++ b/auth/services_oauth/services_oauth.inc
@@ -19,9 +19,11 @@
  */
 function _services_oauth_authenticate_call($settings, $method, $args) {
   $endpoint = array();
-  if (isset($method['endpoint']['services_oauth'])) {
+  // grep the specific settings for this method
+  if (!empty($method['endpoint']['services_oauth']['credentials'])) {
    $endpoint   = $method['endpoint']['services_oauth'];
   }
+  // otherwise use the global settings
   else {
     $endpoint = $settings;
   }
diff --git a/resources/user_resource.inc b/resources/user_resource.inc
index 9fa29be..6468961 100644
--- a/resources/user_resource.inc
+++ b/resources/user_resource.inc
@@ -306,7 +306,7 @@ 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')))
+  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);
   }
 
@@ -466,10 +466,13 @@ function _user_resource_access($op = 'view', $args = array()) {
       return services_error(t('There is no user with ID @uid.', array('@uid' => $args[0])), 406);
     }
   }
+
   global $user;
   switch ($op) {
     case 'view':
-        return user_view_access($account);
+        // The current user object should be passed on as variable. The $acount var
+        // can be set as node id or user object id.
+        return user_view_access($user);
     case 'update':
       return ($user->uid == $account->uid || user_access('administer users'));
     case 'create':
diff --git a/services.runtime.inc b/services.runtime.inc
index fedeabb..7af3e7a 100644
--- a/services.runtime.inc
+++ b/services.runtime.inc
@@ -96,6 +96,7 @@ class ServicesArgumentException extends ServicesException {
  */
 function services_controller_execute($controller, $args = array(), $options = array()) {
   global $user;
+
   // Check for missing arguments.
   $server_info =  services_server_info_object();
   if ($server_info->debug) {
@@ -109,6 +110,7 @@ function services_controller_execute($controller, $args = array(), $options = ar
     $old_state = session_save_session();
     session_save_session(FALSE);
   }
+
   $user = drupal_anonymous_user();
   $user->timestamp = time();
   services_set_server_info('original_user', $original_user);
@@ -119,7 +121,7 @@ function services_controller_execute($controller, $args = array(), $options = ar
     $endpoint = services_endpoint_load($endpoint_name);
 
     foreach ($endpoint->authentication as $auth_module => $settings) {
-      if (isset($settings) && $auth_error = services_auth_invoke($auth_module, 'authenticate_call', $settings, $controller, $args)) {
+      if (!empty($settings) && $auth_error = services_auth_invoke($auth_module, 'authenticate_call', $settings, $controller, $args)) {
         return services_error($auth_error, 401);
       }
     }
