Index: wp-includes/class-wp-xmlrpc-server.php
===================================================================
--- wp-includes/class-wp-xmlrpc-server.php	(revision 20632)
+++ wp-includes/class-wp-xmlrpc-server.php	(working copy)
@@ -490,6 +490,24 @@
 		return $struct;
 	}
 
+    /**
+     * Checks if the method received at least the minimum number of arguments.
+     *
+     * @since 3.4
+     *
+     * @param string|array $args Sanitize single string or array of strings.
+     * @param int $count Minimum number of arguments.
+     * @return boolean if $args contains at least $count arguments.
+     */
+    protected function minimum_args( $args, $count ) {
+        if ( count( $args ) < $count ) {
+            $this->error = new IXR_Error( 400, __( "Insufficient arguments passed to this XML-RPC method." ) );
+            return false;
+        }
+
+        return true;
+    }
+
 	/**
 	 * Prepares taxonomy data for return in an XML-RPC object.
 	 *
@@ -766,6 +784,10 @@
 	 * @return string post_id
 	 */
 	function wp_newPost( $args ) {
+
+        if( ! $this->minimum_args( $args, 4 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id        = (int) $args[0];
@@ -1038,6 +1060,9 @@
 	 * @return true on success
 	 */
 	function wp_editPost( $args ) {
+        if( ! $this->minimum_args( $args, 5 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id        = (int) $args[0];
@@ -1090,6 +1115,9 @@
 	 * @return true on success
 	 */
 	function wp_deletePost( $args ) {
+        if( ! $this->minimum_args( $args, 4 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id    = (int) $args[0];
@@ -1163,6 +1191,9 @@
 	 *  - 'enclosure'
 	 */
 	function wp_getPost( $args ) {
+        if( ! $this->minimum_args( $args, 4 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id            = (int) $args[0];
@@ -1217,6 +1248,9 @@
 	 * @return array contains a collection of posts.
 	 */
 	function wp_getPosts( $args ) {
+        if( ! $this->minimum_args( $args, 3 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id    = (int) $args[0];
@@ -1303,6 +1337,9 @@
 	 * @return string term_id
 	 */
 	function wp_newTerm( $args ) {
+        if( ! $this->minimum_args( $args, 4 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id            = (int) $args[0];
@@ -1387,6 +1424,9 @@
 	 * @return bool True, on success.
 	 */
 	function wp_editTerm( $args ) {
+        if( ! $this->minimum_args( $args, 5 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id            = (int) $args[0];
@@ -1476,6 +1516,9 @@
 	 * @return boolean|IXR_Error If it suceeded true else a reason why not
 	 */
 	function wp_deleteTerm( $args ) {
+        if( ! $this->minimum_args( $args, 5 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id            = (int) $args[0];
@@ -1540,6 +1583,9 @@
 	 *  - 'count'
 	 */
 	function wp_getTerm( $args ) {
+        if( ! $this->minimum_args( $args, 5 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id            = (int) $args[0];
@@ -1590,6 +1636,9 @@
 	 * @return array terms
 	 */
 	function wp_getTerms( $args ) {
+        if( ! $this->minimum_args( $args, 4 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id        = (int) $args[0];
@@ -1662,6 +1711,9 @@
 	 * @return array (@see get_taxonomy())
 	 */
 	function wp_getTaxonomy( $args ) {
+        if( ! $this->minimum_args( $args, 4 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id        = (int) $args[0];
@@ -1703,6 +1755,9 @@
 	 * @return array taxonomies
 	 */
 	function wp_getTaxonomies( $args ) {
+        if( ! $this->minimum_args( $args, 3 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id            = (int) $args[0];
@@ -3009,6 +3064,9 @@
 	 *  - 'supports'
 	 */
 	function wp_getPostType( $args ) {
+        if( ! $this->minimum_args( $args, 4 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id        = (int) $args[0];
@@ -3052,6 +3110,9 @@
 	 * @return array
 	 */
 	function wp_getPostTypes( $args ) {
+        if( ! $this->minimum_args( $args, 3 ) )
+            return $this->error;
+
 		$this->escape( $args );
 
 		$blog_id            = (int) $args[0];
