diff --git a/servers/xmlrpc_server/xmlrpc_server.module b/servers/xmlrpc_server/xmlrpc_server.module
index 535beb3..f5605bc 100644
--- a/servers/xmlrpc_server/xmlrpc_server.module
+++ b/servers/xmlrpc_server/xmlrpc_server.module
@@ -78,31 +78,6 @@ function xmlrpc_server_call_wrapper() {
     return services_controller_execute($controller, $args);
   }
   catch (Exception $e) {
-    $code = $e->getCode();
-    switch($code) {
-      case 204:
-        drupal_add_http_header('HTTP/1.0 204 No Content', $e->getMessage());
-        break;
-      case 304:
-        drupal_add_http_header('HTTP/1.0 304 Not Modified', $e->getMessage());
-        break;
-      case 401:
-        drupal_add_http_header('Status', '401 Unauthorized: ' . $e->getMessage());
-        break;
-      case 404:
-        drupal_add_http_header('Status', '404 Not found: ' . $e->getMessage());
-        break;
-      case 406:
-        drupal_add_http_header('Status', '406 Not Acceptable: ' . $e->getMessage());
-        break;
-      default:
-        if ($code >= 400 && $code < 600) {
-          drupal_add_http_header('Status', $code . ' ' . $e->getMessage());
-        }
-        else {
-          drupal_add_http_header('Status', '500 An error occurred: (' . $code . ') ' . $e->getMessage());
-        }
-        break;
-    }
+    return xmlrpc_error($e->getCode(), $e->getMessage());
   }
 }
