Index: wordpress/wp-includes/functions.php
===================================================================
--- wordpress/wp-includes/functions.php	(revision 6400)
+++ wordpress/wp-includes/functions.php	(working copy)
@@ -1064,8 +1064,13 @@
 }
 
 // return a filename that is sanitized and unique for the given directory
-function wp_unique_filename( $dir, $name, $ext, $unique_filename_callback = NULL ) {
+function wp_unique_filename( $dir, $filename, $unique_filename_callback = NULL ) {
 	
+	// separate the filename into a name and extension
+	$info = pathinfo($filename);
+	$ext = $info['extension'];
+	$name = basename($filename, ".{$ext}");
+	
 	// Increment the file number until we have a unique file to save in $dir. Use $override['unique_filename_callback'] if supplied.
 	if ( $unique_filename_callback && function_exists( $unique_filename_callback ) ) {
 		$filename = $unique_filename_callback( $dir, $name );
@@ -1103,12 +1108,8 @@
 
 	if ( $upload['error'] !== false )
 		return $upload;
-
-	$filename = $name;
-	$path_parts = pathinfo( $filename );
-	$ext = $path_parts['extension'];
 	
-	$filename = wp_unique_filename( $upload['path'], $path_parts['basename'], $ext );
+	$filename = wp_unique_filename( $upload['path'], $name );
 
 	$new_file = $upload['path'] . "/$filename";
 	if ( ! wp_mkdir_p( dirname( $new_file ) ) ) {
Index: wordpress/wp-admin/includes/file.php
===================================================================
--- wordpress/wp-admin/includes/file.php	(revision 6400)
+++ wordpress/wp-admin/includes/file.php	(working copy)
@@ -147,7 +147,7 @@
 	if ( ! ( ( $uploads = wp_upload_dir() ) && false === $uploads['error'] ) )
 		return $upload_error_handler( $file, $uploads['error'] );
 
-	$filename = wp_unique_filename( $uploads['path'], $file['name'], $ext, $unique_filename_callback );
+	$filename = wp_unique_filename( $uploads['path'], $file['name'], $unique_filename_callback );
 
 	// Move the file to the uploads dir
 	$new_file = $uploads['path'] . "/$filename";
