Index: xmlrpc.php
===================================================================
--- xmlrpc.php	(revision 6772)
+++ xmlrpc.php	(working copy)
@@ -1296,7 +1296,16 @@
 		}
 
 		if ($post_more) {
-			$post_content = $post_content . "\n<!--more-->\n" . $post_more;
+			// In order to match the behavior of the wp-admin editor, we have to trim 
+			// whitespace from the post_content and post_more. Otherwise any newline 
+			// that a client might reasonably add to finish the section gets literally
+			// interpreted here. 
+			//
+			// While there is some value in the idea of literal interpretation, the current
+			// behavior of the more tag is such that it sort of expects to follow this format
+			// of "stripped content separated by a more tag on its own line." We'll just comply 
+			// with that to ensure compatible behavior.
+			$post_content = trim($post_content) . "\n<!--more-->\n" . trim($post_more);
 		}
 
 		$to_ping = $content_struct['mt_tb_ping_urls'];
@@ -1565,7 +1574,16 @@
 		}
 
 		if ($post_more) {
-			$post_content = $post_content . "\n<!--more-->\n" . $post_more;
+			// In order to match the behavior of the wp-admin editor, we have to trim 
+			// whitespace from the post_content and post_more. Otherwise any newline 
+			// that a client might reasonably add to finish the section gets literally
+			// interpreted here. 
+			//
+			// While there is some value in the idea of literal interpretation, the current
+			// behavior of the more tag is such that it sort of expects to follow this format
+			// of "stripped content separated by a more tag on its own line." We'll just comply 
+			// with that to ensure compatible behavior.
+			$post_content = trim($post_content) . "\n<!--more-->\n" . trim($post_more);
 		}
 
 		$to_ping = $content_struct['mt_tb_ping_urls'];

