--- JsonRpcServer.php.original	Mon Apr 26 13:15:48 2010
+++ JsonRpcServer.php	Wed Apr 28 18:22:16 2010
@@ -163,2 +163,2 @@
-      if (is_array($result) && isset($result['error']) && $result['error'] === TRUE) {
-        return $this->error(JSONRPC_ERROR_INTERNAL_ERROR, $result['message']);
+      if (is_array($result) && isset($result['error'])) {
+        return $this->error($result['error']['code'], $result['error']['message']);
@@ -208,2 +208,9 @@
-    $response = array('error' => array('name' => 'JSONRPCError', 'code' => $code, 'message' => $message));
-    return $this->response($response);
+	  $response = module_invoke('jsonrpc_server', 'server_error', $message, $code);
+	
+    switch ($this->major_version) {
+      case 1:
+				$response['error']['name'] = 'JSONRPCError';
+        break;
+    }
+
+		return $this->response($response);
--- jsonrpc_server.php.original	Wed Apr 28 17:59:08 2010
+++ jsonrpc_server.module	Wed Apr 28 18:18:04 2010
@@ -69,0 +70,7 @@
+}
+
+function jsonrpc_server_server_error($message, $code, $exception = null) 
+{
+	$response = array('error' => array('code' => $code, 'message' => $message));
+
+	return $response;
