Index: xmlrpc.php
===================================================================
--- xmlrpc.php	(revision 5213)
+++ xmlrpc.php	(working copy)
@@ -36,6 +36,9 @@
 include_once(ABSPATH . 'wp-admin/admin-functions.php');
 include_once(ABSPATH . WPINC . '/class-IXR.php');
 
+// Required by post.php when tags are included, to resolve category_exists()
+include_once(ABSPATH . "wp-admin/admin-db.php");
+
 // Turn off all warnings and errors.
 // error_reporting(0);
 
@@ -989,6 +992,8 @@
 	  $post_excerpt = $content_struct['mt_excerpt'];
 	  $post_more = $content_struct['mt_text_more'];
 
+      $tags_input = $content_struct['mt_keywords'];
+
 	  $comment_status = (!isset($content_struct['mt_allow_comments'])) ?
 	    get_option('default_comment_status')
 	    : $content_struct['mt_allow_comments'];
@@ -1027,7 +1032,7 @@
 	  }
 
 	  // We've got all the data -- post it:
-	  $postdata = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'comment_status', 'ping_status', 'to_ping', 'post_type', 'post_name', 'post_password', 'post_parent', 'menu_order');
+	  $postdata = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'comment_status', 'ping_status', 'to_ping', 'post_type', 'post_name', 'post_password', 'post_parent', 'menu_order', 'tags_input');
 
 	  $post_ID = wp_insert_post($postdata);
 
@@ -1171,6 +1176,8 @@
 	  $post_more = $content_struct['mt_text_more'];
 	  $post_status = $publish ? 'publish' : 'draft';
 
+      $tags_input = $content_struct['mt_keywords'];
+
 	  if ( ('publish' == $post_status) ) {
 	  	if ( ( 'page' == $post_type ) && !current_user_can('publish_pages') )
 	  		return new IXR_Error(401, __('Sorry, you do not have the right to publish this page.'));
@@ -1202,7 +1209,7 @@
 	  }
 
 	  // We've got all the data -- post it:
-	  $newpost = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'comment_status', 'ping_status', 'post_date', 'post_date_gmt', 'to_ping', 'post_name', 'post_password', 'post_parent', 'menu_order', 'post_author');
+	  $newpost = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'comment_status', 'ping_status', 'post_date', 'post_date_gmt', 'to_ping', 'post_name', 'post_password', 'post_parent', 'menu_order', 'post_author', 'tags_input');
 
 	  $result = wp_update_post($newpost);
 	  if (!$result) {
@@ -1243,6 +1250,14 @@
 	      $categories[] = get_cat_name($catid);
 	    }
 
+		$tagnames = array();
+		$tagids = get_post_tags($post_ID);
+		if (!empty( $tagids ) ) {
+			foreach($tagids as $tagid) {
+			  $tagnames[] = $tagid->cat_name;
+			}
+		}
+
 	    $post = get_extended($postdata['post_content']);
 	    $link = post_permalink($postdata['ID']);
 
@@ -1267,6 +1282,7 @@
 	      'mt_text_more' => $post['extended'],
 	      'mt_allow_comments' => $allow_comments,
 	      'mt_allow_pings' => $allow_pings,
+	      'mt_keywords' => implode(', ', $tagnames),
           'wp_slug' => $postdata['post_name'],
           'wp_password' => $postdata['post_password'],
           'wp_author_id' => $author->ID,
@@ -1304,12 +1320,21 @@
 		foreach ($posts_list as $entry) {
 
 			$post_date = mysql2date('Ymd\TH:i:s', $entry['post_date']);
+
 			$categories = array();
 			$catids = wp_get_post_categories($entry['ID']);
 			foreach($catids as $catid) {
 				$categories[] = get_cat_name($catid);
 			}
 
+			$tagnames = array();
+			$tagids = get_post_tags($entry['ID']);
+			if (!empty( $tagids ) ) {
+				foreach($tagids as $tagid) {
+				  $tagnames[] = $tagid->cat_name;
+				}
+			}
+
 			$post = get_extended($entry['post_content']);
 			$link = post_permalink($entry['ID']);
 
@@ -1334,6 +1359,7 @@
 				'mt_text_more' => $post['extended'],
 				'mt_allow_comments' => $allow_comments,
 				'mt_allow_pings' => $allow_pings,
+				'mt_keywords' => implode(', ', $tagnames),
 				'wp_slug' => $entry['post_name'],
 				'wp_password' => $entry['post_password'],
 				'wp_author_id' => $author->ID,

