Index: wp-includes/class.wp-xmlrpc-server.php
===================================================================
--- wp-includes/class.wp-xmlrpc-server.php	(revision 16023)
+++ wp-includes/class.wp-xmlrpc-server.php	(working copy)
@@ -2865,9 +2865,34 @@
 
 		// Save the data
 		$id = wp_insert_attachment( $attachment, $upload[ 'file' ], $post_id );
-		wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $upload['file'] ) );
+		$metadata = wp_generate_attachment_metadata( $id, $upload['file'] );
+		wp_update_attachment_metadata( $id, $metadata );
 
-		return apply_filters( 'wp_handle_upload', array( 'file' => $name, 'url' => $upload[ 'url' ], 'type' => $type ), 'upload' );
+		//setup the data to be returned
+		$returneddata = array( 'file' => $name, 
+		                       'url' => $upload[ 'url' ],
+		                       'type' => $type );
+
+		//Get the URLs for each image we generated
+		if(    isset($metadata['sizes'])
+		    && is_array($metadata['sizes']) ) {
+
+			//Find the filename as stored on disk (may
+			//not be the same as supplied by the client)
+			$savedfile = basename($metadata['file']);
+
+			//for each size, copy the url for the fullsize image...
+			//...replacing the filename with the appropriate string
+			foreach( $metadata['sizes'] as $size => $size_data ) {
+				if( isset($size_data['file']) ) {
+					$resized_url  =  str_replace(  $savedfile, 
+					                               $size_data['file'],
+					                               $upload[ 'url' ]);
+					$returneddata[ $size.'_url' ] = $resized_url;
+				}
+			}
+		}      
+ 		return apply_filters( 'wp_handle_upload', $returneddata, 'upload' );
 	}
 
 	/* MovableType API functions
