--- services.module	2009-11-04 22:37:01.000000000 +0100
+++ services.new.module	2009-11-30 12:16:20.000000000 +0100
@@ -301,7 +301,7 @@ function services_method_call($method_na
   }
 
   // Check authentication
-  if ($auth_error = services_auth_invoke('authenticate_call', $method, $method_name, $args)) {
+  if ($method['auth'] && $auth_error = services_auth_invoke('authenticate_call', $method, $method_name, $args)) {
     if ($browsing) {
       drupal_set_message(t('Authentication failed: !message', array('!message' => $auth_error)), 'error');
     }
--- auth/services_keyauth/services_keyauth.inc	2009-11-10 19:53:18.000000000 +0100
+++ auth/services_keyauth/services_keyauth.new.inc	2009-11-30 12:46:08.000000000 +0100
@@ -90,8 +90,12 @@ function _services_keyauth_alter_methods
         $method['auth'] = FALSE;
         break;
       default:
-        $method['key'] = TRUE;
-        $method['auth'] = TRUE;
+        $method['key'] = isset($method['key']) ? FALSE : TRUE;
+        $method['auth'] = isset($method['auth']) ? FALSE : TRUE;
     }
     
     if ($method['auth'] && variable_get('services_use_sessid', TRUE)) {
