Index: wp-includes/class-wp-xmlrpc-server.php
===================================================================
--- wp-includes/class-wp-xmlrpc-server.php	(revision 20403)
+++ wp-includes/class-wp-xmlrpc-server.php	(working copy)
@@ -741,7 +741,7 @@
 		$blog_id        = (int) $args[0];
 		$username       = $args[1];
 		$password       = $args[2];
-		$content_struct = $args[3];
+		$content_struct = isset( $args[3] ) ? $args[3] : null;
 
 		if ( ! $user = $this->login( $username, $password ) )
 			return $this->error;
@@ -1013,8 +1013,8 @@
 		$blog_id        = (int) $args[0]; // we will support this in the near future
 		$username       = $args[1];
 		$password       = $args[2];
-		$post_id        = (int) $args[3];
-		$content_struct = $args[4];
+		$post_id        = isset( $args[3] ) ? (int) $args[3] : 0;
+		$content_struct = isset( $args[4] ) ? $args[4] : null;
 
 		if ( ! $user = $this->login( $username, $password ) )
 			return $this->error;
@@ -1065,7 +1065,7 @@
 		$blog_id    = (int) $args[0];
 		$username   = $args[1];
 		$password   = $args[2];
-		$post_id    = (int) $args[3];
+		$post_id    = isset( $args[3] ) ? (int) $args[3] : 0;
 
 		if ( ! $user = $this->login( $username, $password ) )
 			return $this->error;
@@ -1136,7 +1136,7 @@
 		$blog_id            = (int) $args[0];
 		$username           = $args[1];
 		$password           = $args[2];
-		$post_id            = (int) $args[3];
+		$post_id            = isset( $args[3] ) ? (int) $args[3] : 0;
 
 		if ( isset( $args[4] ) )
 			$fields = $args[4];
@@ -1274,7 +1274,7 @@
 		$blog_id            = (int) $args[0];
 		$username           = $args[1];
 		$password           = $args[2];
-		$content_struct     = $args[3];
+		$content_struct     = isset( $args[3] ) ? $args[3] : null;
 
 		if ( ! $user = $this->login( $username, $password ) )
 			return $this->error;
@@ -1356,8 +1356,8 @@
 		$blog_id            = (int) $args[0];
 		$username           = $args[1];
 		$password           = $args[2];
-		$term_id            = (int) $args[3];
-		$content_struct     = $args[4];
+		$term_id            = isset( $args[3] ) ? (int) $args[3] : 0;
+		$content_struct     = isset( $args[4] ) ? $args[4] : null;
 
 		if ( ! $user = $this->login( $username, $password ) )
 			return $this->error;
@@ -1443,8 +1443,8 @@
 		$blog_id            = (int) $args[0];
 		$username           = $args[1];
 		$password           = $args[2];
-		$taxonomy_name      = $args[3];
-		$term_id            = (int) $args[4];
+		$taxonomy_name      = isset( $args[3] ) ? $args[3] : '';
+		$term_id            = isset( $args[4] ) ? (int) $args[4] : 0;
 
 		if ( ! $user = $this->login( $username, $password ) )
 			return $this->error;
@@ -1505,8 +1505,8 @@
 		$blog_id            = (int) $args[0];
 		$username           = $args[1];
 		$password           = $args[2];
-		$taxonomy_name      = $args[3];
-		$term_id            = (int) $args[4];
+		$taxonomy_name      = isset( $args[3] ) ? $args[3] : '';
+		$term_id            = isset( $args[4] ) ? (int) $args[4] : 0;
 
 		if ( ! $user = $this->login( $username, $password ) )
 			return $this->error;
@@ -1553,7 +1553,7 @@
 		$blog_id        = (int) $args[0];
 		$username       = $args[1];
 		$password       = $args[2];
-		$taxonomy_name  = $args[3];
+		$taxonomy_name  = isset( $args[3] ) ? $args[3] : '';
 		$filter         = isset( $args[4] ) ? $args[4] : array();
 
 		if ( ! $user = $this->login( $username, $password ) )
@@ -1623,7 +1623,7 @@
 		$blog_id        = (int) $args[0];
 		$username       = $args[1];
 		$password       = $args[2];
-		$taxonomy_name  = $args[3];
+		$taxonomy_name  = isset( $args[3] ) ? $args[3] : '';
 
 		if ( ! $user = $this->login( $username, $password ) )
 			return $this->error;
@@ -1840,10 +1840,10 @@
 	 */
 	function wp_newPage($args) {
 		// Items not escaped here will be escaped in newPost.
-		$username	= $this->escape($args[1]);
-		$password	= $this->escape($args[2]);
-		$page		= $args[3];
-		$publish	= $args[4];
+		$username   = $this->escape($args[1]);
+		$password   = $this->escape($args[2]);
+		$args[3]    = isset( $args[3] ) ? $args[3] : array();
+		$publish    = isset( $args[4] ) ? $args[4] : 0;
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -1854,7 +1854,7 @@
 		$args[3]["post_type"] = 'page';
 
 		// Let mw_newPost do all of the heavy lifting.
-		return($this->mw_newPost($args));
+		return( $this->mw_newPost( $args ) );
 	}
 
 	/**
@@ -1868,10 +1868,10 @@
 	function wp_deletePage($args) {
 		$this->escape($args);
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
-		$page_id	= (int) $args[3];
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
+		$page_id    = isset( $args[3] ) ? (int) $args[3] : 0;
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -1908,12 +1908,12 @@
 	 */
 	function wp_editPage($args) {
 		// Items not escaped here will be escaped in editPost.
-		$blog_id	= (int) $args[0];
-		$page_id	= (int) $this->escape($args[1]);
-		$username	= $this->escape($args[2]);
-		$password	= $this->escape($args[3]);
-		$content	= $args[4];
-		$publish	= $args[5];
+		$blog_id    = (int) $args[0];
+		$page_id    = (int) $this->escape( $args[1] );
+		$username   = $this->escape( $args[2] );
+		$password   = $this->escape( $args[3] );
+		$content    = isset( $args[4] ) ? $args[4] : null;
+		$publish    = isset( $args[5] ) ? $args[5] : 0;
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -1958,9 +1958,9 @@
 
 		$this->escape($args);
 
-		$blog_id				= (int) $args[0];
-		$username				= $args[1];
-		$password				= $args[2];
+		$blog_id     = (int) $args[0];
+		$username    = $args[1];
+		$password    = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2009,9 +2009,9 @@
 
 		$this->escape($args);
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2044,9 +2044,9 @@
 	function wp_getTags( $args ) {
 		$this->escape( $args );
 
-		$blog_id		= (int) $args[0];
-		$username		= $args[1];
-		$password		= $args[2];
+		$blog_id      = (int) $args[0];
+		$username     = $args[1];
+		$password     = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2085,10 +2085,10 @@
 	function wp_newCategory($args) {
 		$this->escape($args);
 
-		$blog_id				= (int) $args[0];
-		$username				= $args[1];
-		$password				= $args[2];
-		$category				= $args[3];
+		$blog_id      = (int) $args[0];
+		$username     = $args[1];
+		$password     = $args[2];
+		$category     = isset( $args[3] ) ? $args[3] : array();
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2146,10 +2146,10 @@
 	function wp_deleteCategory($args) {
 		$this->escape($args);
 
-		$blog_id		= (int) $args[0];
-		$username		= $args[1];
-		$password		= $args[2];
-		$category_id	= (int) $args[3];
+		$blog_id        = (int) $args[0];
+		$username       = $args[1];
+		$password       = $args[2];
+		$category_id    = isset( $args[3] ) ? (int) $args[3] : 0;
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2178,11 +2178,11 @@
 	function wp_suggestCategories($args) {
 		$this->escape($args);
 
-		$blog_id				= (int) $args[0];
-		$username				= $args[1];
-		$password				= $args[2];
-		$category				= $args[3];
-		$max_results			= (int) $args[4];
+		$blog_id        = (int) $args[0];
+		$username       = $args[1];
+		$password       = $args[2];
+		$category       = isset( $args[3] ) ? $args[3] : '';
+		$max_results    = isset( $args[4] ) ? (int) $args[4] : '';
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2215,10 +2215,10 @@
 	function wp_getComment($args) {
 		$this->escape($args);
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
-		$comment_id	= (int) $args[3];
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
+		$comment_id = isset( $args[3] ) ? (int) $args[3] : 0;
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2289,10 +2289,10 @@
 		$raw_args = $args;
 		$this->escape($args);
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
-		$struct		= $args[3];
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
+		$struct     = isset( $args[3] ) ? $args[3] : null;
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2357,10 +2357,10 @@
 	function wp_deleteComment($args) {
 		$this->escape($args);
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
-		$comment_ID	= (int) $args[3];
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
+		$comment_ID = isset( $args[3] ) ? (int) $args[3] : 0;
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2411,11 +2411,11 @@
 	function wp_editComment($args) {
 		$this->escape($args);
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
-		$comment_ID	= (int) $args[3];
-		$content_struct = $args[4];
+		$blog_id        = (int) $args[0];
+		$username       = $args[1];
+		$password       = $args[2];
+		$comment_ID     = isset( $args[3] ) ? (int) $args[3] : 0;
+		$content_struct = isset( $args[4] ) ? $args[4] : array();
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2487,11 +2487,11 @@
 
 		$this->escape($args);
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
-		$post		= $args[3];
-		$content_struct = $args[4];
+		$blog_id        = (int) $args[0];
+		$username       = $args[1];
+		$password       = $args[2];
+		$post           = isset( $args[3] ) ? $args[3] : 0;
+		$content_struct = isset( $args[4] ) ? $args[4] : array();
 
 		$allow_anon = apply_filters('xmlrpc_allow_anonymous_comments', false);
 
@@ -2572,9 +2572,9 @@
 	function wp_getCommentStatusList($args) {
 		$this->escape( $args );
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2598,10 +2598,10 @@
 	function wp_getCommentCount( $args ) {
 		$this->escape($args);
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
-		$post_id	= (int) $args[3];
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
+		$post_id    = isset( $args[3] ) ? (int) $args[3] : 0;
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2631,9 +2631,9 @@
 	function wp_getPostStatusList( $args ) {
 		$this->escape( $args );
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2657,9 +2657,9 @@
 	function wp_getPageStatusList( $args ) {
 		$this->escape( $args );
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2683,9 +2683,9 @@
 	function wp_getPageTemplates( $args ) {
 		$this->escape( $args );
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2710,10 +2710,10 @@
 	function wp_getOptions( $args ) {
 		$this->escape( $args );
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
-		$options	= isset( $args[3] ) ? (array) $args[3] : array();
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
+		$options    = isset( $args[3] ) ? (array) $args[3] : array();
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2760,10 +2760,10 @@
 	function wp_setOptions( $args ) {
 		$this->escape( $args );
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
-		$options	= (array) $args[3];
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
+		$options    = isset( $args[3] ) ? (array) $args[3] : array();
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2809,10 +2809,10 @@
 	function wp_getMediaItem($args) {
 		$this->escape($args);
 
-		$blog_id		= (int) $args[0];
-		$username		= $args[1];
-		$password		= $args[2];
-		$attachment_id	= (int) $args[3];
+		$blog_id        = (int) $args[0];
+		$username       = $args[1];
+		$password       = $args[2];
+		$attachment_id  = isset( $args[3] ) ? (int) $args[3] : 0;
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2874,10 +2874,10 @@
 		$raw_args = $args;
 		$this->escape($args);
 
-		$blog_id	= (int) $args[0];
-		$username	= $args[1];
-		$password	= $args[2];
-		$struct		= isset( $args[3] ) ? $args[3] : array() ;
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
+		$struct     = isset( $args[3] ) ? $args[3] : array();
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -2920,7 +2920,7 @@
 	function wp_getPostFormats( $args ) {
 		$this->escape( $args );
 
-		$blog_id = (int) $args[0];
+		$blog_id  = (int) $args[0];
 		$username = $args[1];
 		$password = $args[2];
 
@@ -2975,7 +2975,7 @@
 		$blog_id        = (int) $args[0];
 		$username       = $args[1];
 		$password       = $args[2];
-		$post_type_name = $args[3];
+		$post_type_name = isset( $args[3] ) ? $args[3] : '';
 
 		if ( isset( $args[4] ) ) 
 			$fields = $args[4]; 
@@ -3064,7 +3064,7 @@
 
 		$this->escape($args);
 
-		$username = $args[1];
+		$username  = $args[1];
 		$password  = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
@@ -3128,7 +3128,7 @@
 
 		$this->escape($args);
 
-		$username = $args[1];
+		$username  = $args[1];
 		$password  = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
@@ -3162,8 +3162,8 @@
 
 		$this->escape($args);
 
-		$post_ID    = (int) $args[1];
-		$username = $args[2];
+		$post_ID   = (int) $args[1];
+		$username  = $args[2];
 		$password  = $args[3];
 
 		if ( !$user = $this->login($username, $password) )
@@ -3205,9 +3205,10 @@
 		$this->escape($args);
 
 		// $args[0] = appkey - ignored
-		$blog_ID    = (int) $args[1]; /* though we don't use it yet */
-		$username = $args[2];
+		$blog_ID   = (int) $args[1]; /* though we don't use it yet */
+		$username  = $args[2];
 		$password  = $args[3];
+
 		if ( isset( $args[4] ) )
 			$query = array( 'numberposts' => absint( $args[4] ) );
 		else
@@ -3265,10 +3266,10 @@
 
 		$this->escape($args);
 
-		$blog_ID    = (int) $args[1];
-		$username = $args[2];
+		$blog_ID   = (int) $args[1];
+		$username  = $args[2];
 		$password  = $args[3];
-		$template   = $args[4]; /* could be 'main' or 'archiveIndex', but we don't use it */
+		$template  = isset( $args[4] ) ? $args[4] : ''; /* could be 'main' or 'archiveIndex', but we don't use it */
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -3304,11 +3305,11 @@
 
 		$this->escape($args);
 
-		$blog_ID    = (int) $args[1];
-		$username = $args[2];
+		$blog_ID   = (int) $args[1];
+		$username  = $args[2];
 		$password  = $args[3];
-		$content    = $args[4];
-		$template   = $args[5]; /* could be 'main' or 'archiveIndex', but we don't use it */
+		$content   = isset( $args[4] ) ? $args[4] : '';
+		$template  = isset( $args[5] ) ? $args[5] : ''; /* could be 'main' or 'archiveIndex', but we don't use it */
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -3344,11 +3345,11 @@
 
 		$this->escape($args);
 
-		$blog_ID    = (int) $args[1]; /* though we don't use it yet */
-		$username = $args[2];
+		$blog_ID   = (int) $args[1]; /* though we don't use it yet */
+		$username  = $args[2];
 		$password  = $args[3];
-		$content    = $args[4];
-		$publish    = $args[5];
+		$content   = isset( $args[4] ) ? $args[4] : array();
+		$publish   = isset( $args[5] ) ? $args[5] : 0;
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -3398,11 +3399,11 @@
 
 		$this->escape($args);
 
-		$post_ID     = (int) $args[1];
+		$post_ID   = (int) $args[1];
 		$username  = $args[2];
-		$password   = $args[3];
-		$content     = $args[4];
-		$publish     = $args[5];
+		$password  = $args[3];
+		$content   = isset( $args[4] ) ? $args[4] : array();
+		$publish   = isset( $args[5] ) ? $args[5] : 0;
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -3453,10 +3454,10 @@
 	function blogger_deletePost($args) {
 		$this->escape($args);
 
-		$post_ID     = (int) $args[1];
-		$username  = $args[2];
+		$post_ID    = (int) $args[1];
+		$username   = $args[2];
 		$password   = $args[3];
-		$publish     = $args[4];
+		$publish    = isset( $args[4] ) ? $args[4] : 0;
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -3523,11 +3524,11 @@
 	function mw_newPost($args) {
 		$this->escape($args);
 
-		$blog_ID     = (int) $args[0]; // we will support this in the near future
-		$username  = $args[1];
-		$password   = $args[2];
-		$content_struct = $args[3];
-		$publish     = isset( $args[4] ) ? $args[4] : 0;
+		$blog_ID        = (int) $args[0]; // we will support this in the near future
+		$username       = $args[1];
+		$password       = $args[2];
+		$content_struct = isset( $args[3] ) ? $args[3] : null;
+		$publish        = isset( $args[4] ) ? $args[4] : 0;
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -3841,11 +3842,11 @@
 
 		$this->escape($args);
 
-		$post_ID     = (int) $args[0];
-		$username  = $args[1];
-		$password   = $args[2];
-		$content_struct = $args[3];
-		$publish     = $args[4];
+		$post_ID        = (int) $args[0];
+		$username       = $args[1];
+		$password       = $args[2];
+		$content_struct = isset( $args[3] ) ? $args[3] : null;
+		$publish        = isset( $args[4] ) ? (boolean)$args[4] : 0;
 
 		if ( ! $user = $this->login($username, $password) )
 			return $this->error;
@@ -3999,6 +4000,7 @@
 		if ( isset( $content_struct['mt_excerpt'] ) )
 			$post_excerpt =  $content_struct['mt_excerpt'];
 
+		$post_more = null;
 		if ( isset( $content_struct['mt_text_more'] ) )
 			$post_more =  $content_struct['mt_text_more'];
 
@@ -4110,9 +4112,9 @@
 
 		$this->escape($args);
 
-		$post_ID     = (int) $args[0];
+		$post_ID   = (int) $args[0];
 		$username  = $args[1];
-		$password   = $args[2];
+		$password  = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -4233,9 +4235,10 @@
 
 		$this->escape($args);
 
-		$blog_ID     = (int) $args[0];
-		$username  = $args[1];
+		$blog_ID    = (int) $args[0];
+		$username   = $args[1];
 		$password   = $args[2];
+
 		if ( isset( $args[3] ) )
 			$query = array( 'numberposts' => absint( $args[3] ) );
 		else
@@ -4348,8 +4351,8 @@
 
 		$this->escape($args);
 
-		$blog_ID     = (int) $args[0];
-		$username  = $args[1];
+		$blog_ID    = (int) $args[0];
+		$username   = $args[1];
 		$password   = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
@@ -4394,10 +4397,10 @@
 	function mw_newMediaObject($args) {
 		global $wpdb;
 
-		$blog_ID     = (int) $args[0];
-		$username  = $wpdb->escape($args[1]);
+		$blog_ID    = (int) $args[0];
+		$username   = $wpdb->escape($args[1]);
 		$password   = $wpdb->escape($args[2]);
-		$data        = $args[3];
+		$data       = isset( $args[3] ) ? $args[3] : array();
 
 		$name = sanitize_file_name( $data['name'] );
 		$type = $data['type'];
@@ -4479,12 +4482,12 @@
 	 * @return array
 	 */
 	function mt_getRecentPostTitles($args) {
-
 		$this->escape($args);
 
-		$blog_ID     = (int) $args[0];
-		$username  = $args[1];
+		$blog_ID    = (int) $args[0];
+		$username   = $args[1];
 		$password   = $args[2];
+
 		if ( isset( $args[3] ) )
 			$query = array( 'numberposts' => absint( $args[3] ) );
 		else
@@ -4542,8 +4545,8 @@
 
 		$this->escape($args);
 
-		$blog_ID     = (int) $args[0];
-		$username  = $args[1];
+		$blog_ID    = (int) $args[0];
+		$username   = $args[1];
 		$password   = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
@@ -4580,8 +4583,8 @@
 
 		$this->escape($args);
 
-		$post_ID     = (int) $args[0];
-		$username  = $args[1];
+		$post_ID    = (int) $args[0];
+		$username   = $args[1];
 		$password   = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
@@ -4620,10 +4623,10 @@
 
 		$this->escape($args);
 
-		$post_ID     = (int) $args[0];
-		$username  = $args[1];
+		$post_ID    = (int) $args[0];
+		$username   = $args[1];
 		$password   = $args[2];
-		$categories  = $args[3];
+		$categories = isset( $args[3] ) ? $args[3] : array();
 
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
@@ -4728,8 +4731,8 @@
 
 		$this->escape($args);
 
-		$post_ID     = (int) $args[0];
-		$username  = $args[1];
+		$post_ID    = (int) $args[0];
+		$username   = $args[1];
 		$password   = $args[2];
 
 		if ( !$user = $this->login($username, $password) )
