Index: includes/xmlrpc.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/xmlrpc.inc,v
retrieving revision 1.61
diff -u -p -r1.61 xmlrpc.inc
--- includes/xmlrpc.inc	24 Aug 2009 00:14:19 -0000	1.61
+++ includes/xmlrpc.inc	18 Dec 2009 01:17:10 -0000
@@ -342,7 +342,7 @@ EOD;
 }
 
 
-function xmlrpc_error($code = NULL, $message = NULL) {
+function xmlrpc_error($code = NULL, $message = NULL, $reset = FALSE) {
   static $xmlrpc_error;
   if (isset($code)) {
     $xmlrpc_error = new stdClass();
@@ -350,6 +350,9 @@ function xmlrpc_error($code = NULL, $mes
     $xmlrpc_error->code = $code;
     $xmlrpc_error->message = $message;
   }
+  elseif ($reset) {
+    $xmlrpc_error = NULL;
+  }
   return $xmlrpc_error;
 }
 
@@ -441,6 +444,7 @@ function xmlrpc_base64_get_xml($xmlrpc_b
 function _xmlrpc() {
   $args = func_get_args();
   $url = array_shift($args);
+  xmlrpc_clear_error();
   if (is_array($args[0])) {
     $method = 'system.multicall';
     $multicall_args = array();
@@ -494,3 +498,10 @@ function xmlrpc_error_msg() {
   $error = xmlrpc_error();
   return ($error != NULL ? $error->message : NULL);
 }
+
+/**
+ * Clears any previous error.
+ */
+function xmlrpc_clear_error() {
+  xmlrpc_error(NULL, NULL, TRUE);
+}
