diff --git a/plugins/export_ui/services_ctools_export_ui.class.php b/plugins/export_ui/services_ctools_export_ui.class.php
index 578d2eb..5766991 100644
--- a/plugins/export_ui/services_ctools_export_ui.class.php
+++ b/plugins/export_ui/services_ctools_export_ui.class.php
@@ -150,7 +150,7 @@ function services_edit_form_endpoint_server($form, $form_state) {
   else {
     $definition = $server['settings'];
 
-    $settings = isset($endpoint->server_settings[$endpoint->server]) ? $endpoint->server_settings[$endpoint->server] : array();
+    $settings = isset($endpoint->server_settings) ? $endpoint->server_settings : array();
 
     if (!empty($definition['file'])) {
       call_user_func_array('module_load_include', $definition['file']);
@@ -189,7 +189,7 @@ function services_edit_form_endpoint_server_submit($form, $form_state) {
   }
 
   // Store the settings in the endpoint
-  $endpoint->server_settings[$endpoint->server] = $values;
+  $endpoint->server_settings = $values;
   services_endpoint_save($endpoint);
 
   drupal_set_message(t('Your server settings have been saved.'));
diff --git a/servers/rest_server/includes/RESTServer.inc b/servers/rest_server/includes/RESTServer.inc
index bfc326e..9afa834 100755
--- a/servers/rest_server/includes/RESTServer.inc
+++ b/servers/rest_server/includes/RESTServer.inc
@@ -54,7 +54,7 @@ class RESTServer {
     $endpoint_definition = services_endpoint_load($endpoint);
 
     // Get the server settings from the endpoint.
-    $this->settings = !empty($endpoint_definition->server_settings['rest_server']) ? $endpoint_definition->server_settings['rest_server'] : array();
+    $this->settings = !empty($endpoint_definition->server_settings) ? $endpoint_definition->server_settings : array();
     // Normalize the settings so that we get the expected structure
     // and sensible defaults.
     $this->settings = rest_server_setup_settings($this->settings);
diff --git a/services.install b/services.install
index 09e3b46..7ec7cc2 100644
--- a/services.install
+++ b/services.install
@@ -336,6 +336,7 @@ function services_update_6303() {
   db_add_field($ret, 'services_endpoint', 'server_settings', $new_field);
   return $ret;
 }
+
 /**
  * Update 6304 removes title functionality as it is no longer used.
  */
@@ -343,4 +344,21 @@ function services_update_6304() {
   $ret = array();
   db_drop_field($ret, 'services_endpoint', 'title');
   return $ret;
-}
\ No newline at end of file
+}
+
+/**
+ * Update 6305 reduces nesting in the way server settings are stored
+ */
+function services_update_6305() {
+  foreach (services_endpoint_load_all() as $endpoint) {
+    $settings = $endpoint->server_settings;
+    if (!empty($settings)) {
+      $settings = current($settings);
+    }
+    else {
+      $settings = array();
+    }
+    $endpoint->server_settings = $settings;
+    services_endpoint_save($endpoint);
+  }
+}
diff --git a/services.module b/services.module
index 46628cd..d6b1806 100644
--- a/services.module
+++ b/services.module
@@ -166,7 +166,7 @@ function services_endpoint_callback($endpoint_name) {
       'endpoint'      => $endpoint_name,
       'endpoint_path' => $endpoint->path,
       'debug'         => $endpoint->debug,
-      'settings'      => $endpoint->server_settings[$server],
+      'settings'      => $endpoint->server_settings,
     ));
     if ($endpoint->debug) {
       watchdog('services', 'Server info main object: <pre>@info</pre>', array('@info' => print_r(services_server_info_object(), TRUE)), WATCHDOG_DEBUG);
diff --git a/tests/functional/ServicesParserTests.test b/tests/functional/ServicesParserTests.test
index 9829c85..5c65cd6 100644
--- a/tests/functional/ServicesParserTests.test
+++ b/tests/functional/ServicesParserTests.test
@@ -39,18 +39,16 @@ class ServicesParserTests extends ServicesWebTestCase {
       'services' => 'services',
     );
     $endpoint->server_settings = array(
-      'rest_server' => array(
-        'formatters' => array(
-          'php' => TRUE,
-        ),
-        'parsers' => array(
-          'application/x-yaml' => TRUE,
-          'application/json' => TRUE,
-          'application/vnd.php.serialized' => TRUE,
-          'application/plist' => TRUE,
-          'application/plist+xml' => TRUE,
-          'application/x-www-form-urlencoded' => FALSE,
-        ),
+      'formatters' => array(
+        'php' => TRUE,
+      ),
+      'parsers' => array(
+        'application/x-yaml' => TRUE,
+        'application/json' => TRUE,
+        'application/vnd.php.serialized' => TRUE,
+        'application/plist' => TRUE,
+        'application/plist+xml' => TRUE,
+        'application/x-www-form-urlencoded' => FALSE,
       ),
     );
     $endpoint->resources = array(
@@ -120,4 +118,4 @@ class ServicesParserTests extends ServicesWebTestCase {
                   && $body->user->name == $account->name;
     $this->assertTrue($proper_answer, t('User successfully logged in via JSON call.'), 'JSON Call: Login');
   }
-}
\ No newline at end of file
+}
diff --git a/tests/functional/ServicesWebTestCase.php b/tests/functional/ServicesWebTestCase.php
index 6c209d5..81c8e70 100644
--- a/tests/functional/ServicesWebTestCase.php
+++ b/tests/functional/ServicesWebTestCase.php
@@ -188,26 +188,24 @@ class ServicesWebTestCase extends DrupalWebTestCase {
       'services' => 'services',
     );
     $endpoint->server_settings = array(
-      'rest_server' => array(
-        'formatters' => array(
-          'json' => TRUE,
-          'bencode' => TRUE,
-          'rss' => TRUE,
-          'plist' => TRUE,
-          'xmlplist' => TRUE,
-          'php' => TRUE,
-          'yaml' => TRUE,
-          'jsonp' => FALSE,
-          'xml' => FALSE,
-        ),
-        'parsers' => array(
-          'application/x-yaml' => TRUE,
-          'application/json' => TRUE,
-          'application/vnd.php.serialized' => TRUE,
-          'application/plist' => TRUE,
-          'application/plist+xml' => TRUE,
-          'application/x-www-form-urlencoded' => TRUE,
-        ),
+      'formatters' => array(
+        'json' => TRUE,
+        'bencode' => TRUE,
+        'rss' => TRUE,
+        'plist' => TRUE,
+        'xmlplist' => TRUE,
+        'php' => TRUE,
+        'yaml' => TRUE,
+        'jsonp' => FALSE,
+        'xml' => FALSE,
+      ),
+      'parsers' => array(
+        'application/x-yaml' => TRUE,
+        'application/json' => TRUE,
+        'application/vnd.php.serialized' => TRUE,
+        'application/plist' => TRUE,
+        'application/plist+xml' => TRUE,
+        'application/x-www-form-urlencoded' => TRUE,
       ),
     );
     $endpoint->resources = array(
