diff --git a/services.runtime.inc b/services.runtime.inc
index 57bb7b9..7010b45 100644
--- a/services.runtime.inc
+++ b/services.runtime.inc
@@ -113,9 +113,13 @@ function services_controller_execute($controller, $args = array(), $options = ar
     $endpoint = services_endpoint_load($endpoint_name);
 
     foreach ($endpoint->authentication as $auth_module => $settings) {
+      $existing_uid = $user->uid;
       if (isset($settings) && $auth_error = services_auth_invoke($auth_module, 'authenticate_call', $settings, $controller, $args)) {
         return services_error($auth_error, 401);
       }
+      if ($existing_uid !== $user->uid) {
+        break;
+      }
     }
   }
 
