Index: wp-includes/comment.php
===================================================================
--- wp-includes/comment.php	(revision 8519)
+++ wp-includes/comment.php	(working copy)
@@ -206,6 +206,29 @@
 }
 
 /**
+ * Retrieve all of the WordPress supported comment statuses.
+ *
+ * Comments have a limited set of valid status values, this provides the
+ * comment status values and descriptions.
+ *
+ * @package WordPress
+ * @subpackage Post
+ * @since 2.7
+ *
+ * @return array List of comment statuses.
+ */
+function get_comment_statuses( ) {
+	$status = array(
+		'hold'			=> __('Unapproved'),
+		'approve'		=> __('Approved'),
+		'spam'		=> __('Spam'),
+	);
+
+	return $status;
+}
+
+
+/**
  * The date the last comment was modified.
  *
  * {@internal Missing Long Description}}
Index: wp-includes/comment-template.php
===================================================================
--- wp-includes/comment-template.php	(revision 8519)
+++ wp-includes/comment-template.php	(working copy)
@@ -320,10 +320,11 @@
  * @since 1.5
  * @uses $comment
  *
+ * @param object|string|int $comment Comment to retrieve.
  * @return string The permalink to the current comment
  */
-function get_comment_link() {
-	global $comment;
+function get_comment_link($comment = null) {
+	$comment = get_comment($comment);
 	return get_permalink( $comment->comment_post_ID ) . '#comment-' . $comment->comment_ID;
 }
 
Index: xmlrpc.php
===================================================================
--- xmlrpc.php	(revision 8519)
+++ xmlrpc.php	(working copy)
@@ -829,6 +829,118 @@
 		return($category_suggestions);
 	}
 
+	function wp_getComment($args) {
+		$this->escape($args);
+
+		$blog_id	= (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+		$comment_id	= (int) $args[3];
+
+		if ( !$this->login_pass_ok( $username, $password ) )
+			return $this->error;
+
+		set_current_user( 0, $username );
+		if ( !current_user_can( 'moderate_comments' ) )
+			return new IXR_Error( 403, __( 'You are not allowed to moderate comments on this blog.' ) );
+
+		if ( ! $comment = get_comment($comment_id) )
+			return new IXR_Error( 404, __( 'Invalid comment ID.' ) );
+
+		// Format page date.
+		$comment_date = mysql2date("Ymd\TH:i:s", $comment->comment_date);
+		$comment_date_gmt = mysql2date("Ymd\TH:i:s", $comment->comment_date_gmt);
+
+		if ( 0 == $comment->comment_status )
+			$comment_status = 'hold';
+		else if ( 'spam' == $comment->comment_status )
+			$comment_status = 'spam';
+		else
+			$comment_status = 'approve';
+
+		$link = get_comment_link($comment);
+
+		$comment_struct = array(
+			"dateCreated"			=> new IXR_Date($comment_date),
+			"userid"				=> $comment->user_id,
+			"comment_id"			=> $comment->comment_ID,
+			"comment_status"		=> $comment_status,
+			"description"			=> $comment->content,
+			"link"					=> $link,
+			"permaLink"				=> $link,
+			"author"				=> $author->display_name,
+			"post_id"				=> $comment->comment_post_ID,
+			"post_title"			=> $todo,
+			"author"				=> $comment->comment_author,
+			"date_created_gmt"		=> new IXR_Date($comment_date_gmt),
+		);
+
+		return $comment_struct;
+	}
+
+	function wp_getComments($args) {
+		
+	}
+
+	function wp_deleteComment($args) {
+		
+	}
+
+	function wp_editComment($args) {
+		
+	}
+
+	function wp_newComment($args) {
+		
+	}
+
+	function wp_getCommentStatusList($args) {
+		$this->escape( $args );
+
+		$blog_id	= (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+
+		if ( !$this->login_pass_ok( $username, $password ) )
+			return $this->error;
+
+		set_current_user( 0, $username );
+		if ( !current_user_can( 'moderate_comments' ) )
+			return new IXR_Error( 403, __( 'You are not allowed access to details about this blog.' ) );
+
+		do_action('xmlrpc_call', 'wp.getCommentStatusList');
+
+		return get_comment_statuses( );
+	}
+
+	function wp_setCommentStatus($args) {
+		$this->escape($args);
+
+		$blog_id	= (int) $args[0];
+		$username	= $args[1];
+		$password	= $args[2];
+		$comment_id	= (int) $args[3];
+		$status = $args[4];
+
+		if ( !$this->login_pass_ok( $username, $password ) )
+			return $this->error;
+
+		set_current_user( 0, $username );
+		if ( !current_user_can( 'moderate_comments' ) )
+			return new IXR_Error( 403, __( 'You are not allowed to moderate comments on this blog.' ) );
+
+		$statuses = get_comment_status();
+		$statuses = array_keys($statuses);
+
+		if ( ! in_array($statuses, $status) )
+			return new IXR_Error( 401, __( 'Invalid comment status.' ) );
+
+		if ( ! get_comment($comment_id) )
+			return new IXR_Error( 404, __( 'Invalid comment ID.' ) );
+
+		return wp_set_comment_status($comment_id, $status);
+	}
+
 	function wp_getCommentCount( $args ) {
 		$this->escape($args);
 
@@ -857,7 +969,6 @@
 		);
 	}
 
-
 	function wp_getPostStatusList( $args ) {
 		$this->escape( $args );
 

