Index: trunk/parsers.php
===================================================================
--- trunk/parsers.php	(revision 363311)
+++ trunk/parsers.php	(working copy)
@@ -173,11 +173,21 @@
 			foreach ( $wp->postmeta as $meta ) {
 				$post['postmeta'][] = array(
 					'key' => (string) $meta->meta_key,
-					'value' => (string) $meta->meta_value,
+					'value' => (string) $meta->meta_value
 				);
 			}
 
 			foreach ( $wp->comment as $comment ) {
+				$meta = array();
+				if ( isset( $comment->commentmeta ) ) {
+					foreach ( $comment->commentmeta as $m ) {
+						$meta[] = array(
+							'key' => (string) $m->meta_key,
+							'value' => (string) $m->meta_value
+						);
+					}
+				}
+			
 				$post['comments'][] = array(
 					'comment_id' => (int) $comment->comment_id,
 					'comment_author' => (string) $comment->comment_author,
@@ -191,6 +201,7 @@
 					'comment_type' => (string) $comment->comment_type,
 					'comment_parent' => (string) $comment->comment_parent,
 					'comment_user_id' => (int) $comment->comment_user_id,
+					'commentmeta' => $meta,
 				);
 			}
 
@@ -302,10 +313,17 @@
 	function tag_close( $parser, $tag ) {
 		switch ( $tag ) {
 			case 'wp:comment':
+				unset( $this->sub_data['key'], $this->sub_data['value'] ); // remove meta sub_data
 				if ( ! empty( $this->sub_data ) )
 					$this->data['comments'][] = $this->sub_data;
 				$this->sub_data = false;
 				break;
+			case 'wp:commentmeta':
+				$this->sub_data['commentmeta'][] = array(
+					'key' => $this->sub_data['key'],
+					'value' => $this->sub_data['value']
+				);
+				break;
 			case 'category':
 				if ( ! empty( $this->sub_data ) ) {
 					$this->sub_data['name'] = $this->cdata;
@@ -546,6 +564,16 @@
 		$comments = $comments[1];
 		if ( $comments ) {
 			foreach ( $comments as $comment ) {
+				preg_match_all( '|<wp:commentmeta>(.+?)</wp:commentmeta>|is', $comment, $commentmeta );
+				$commentmeta = $commentmeta[1];
+				$c_meta = array();
+				foreach ( $commentmeta as $m ) {
+					$c_meta[] = array(
+						'key' => $this->get_tag( $m, 'wp:meta_key' ),
+						'value' => $this->get_tag( $m, 'wp:meta_value' ),
+					);
+				}
+
 				$post_comments[] = array(
 					'comment_id' => $this->get_tag( $comment, 'wp:comment_id' ),
 					'comment_author' => $this->get_tag( $comment, 'wp:comment_author' ),
@@ -559,6 +587,7 @@
 					'comment_type' => $this->get_tag( $comment, 'wp:comment_type' ),
 					'comment_parent' => $this->get_tag( $comment, 'wp:comment_parent' ),
 					'comment_user_id' => $this->get_tag( $comment, 'wp:comment_user_id' ),
+					'commentmeta' => $c_meta,
 				);
 			}
 		}
Index: trunk/wordpress-importer.php
===================================================================
--- trunk/wordpress-importer.php	(revision 366417)
+++ trunk/wordpress-importer.php	(working copy)
@@ -523,7 +523,7 @@
 				continue;
 			}
 
-			if ( isset( $this->processed_posts[$post['post_id']] ) )
+			if ( isset( $this->processed_posts[$post['post_id']] ) && ! empty( $post['post_id'] ) )
 				continue;
 
 			if ( $post['status'] == 'auto-draft' )
@@ -654,6 +654,7 @@
 					$newcomments[$comment_id]['comment_approved']     = $comment['comment_approved'];
 					$newcomments[$comment_id]['comment_type']         = $comment['comment_type'];
 					$newcomments[$comment_id]['comment_parent'] 	  = $comment['comment_parent'];
+					$newcomments[$comment_id]['commentmeta']          = $comment['commentmeta'];
 					if ( isset( $this->processed_authors[$comment['comment_user_id']] ) )
 						$newcomments[$comment_id]['user_id'] = $this->processed_authors[$comment['comment_user_id']];
 				}
@@ -666,6 +667,12 @@
 							$comment['comment_parent'] = $inserted_comments[$comment['comment_parent']];
 						$comment = wp_filter_comment( $comment );
 						$inserted_comments[$key] = wp_insert_comment( $comment );
+
+						foreach( $comment['commentmeta'] as $meta ) {
+							$value = maybe_unserialize( $meta['value'] );
+							add_comment_meta( $inserted_comments[$key], $meta['key'], $value );
+						}
+
 						$num_comments++;
 					}
 				}
