Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.1179
diff -u -p -r1.1179 user.module
--- modules/user/user.module	29 Jun 2010 18:24:10 -0000	1.1179
+++ modules/user/user.module	1 Jul 2010 01:22:42 -0000
@@ -437,7 +437,7 @@ function user_save($account, $edit = arr
 
           // Prepare the pictures directory.
           file_prepare_directory($picture_directory, FILE_CREATE_DIRECTORY);
-          $destination = file_stream_wrapper_uri_normalize($picture_directory . '/picture-' . $account->uid . '.' . $info['extension']);
+          $destination = file_stream_wrapper_uri_normalize($picture_directory . '/picture-' . $account->uid . '-' . REQUEST_TIME . '.' . $info['extension']);
 
           if ($picture = file_move($picture, $destination, FILE_EXISTS_REPLACE)) {
             $picture->status |= FILE_STATUS_PERMANENT;
Index: modules/user/user.test
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.test,v
retrieving revision 1.95
diff -u -p -r1.95 user.test
--- modules/user/user.test	10 Jun 2010 06:57:20 -0000	1.95
+++ modules/user/user.test	1 Jul 2010 01:22:42 -0000
@@ -898,7 +898,9 @@ class UserPictureTestCase extends Drupal
     if ($this->_directory_test) {
       $this->drupalLogin($this->user);
 
-      $image = current($this->drupalGetTestFiles('image'));
+      $images = $this->drupalGetTestFiles('image');
+      $image = $images[0];
+      $image2 = $images[1];
       $info = image_get_info($image->uri);
 
       // Set new variables: valid dimensions, valid filesize (0 = no limit).
@@ -914,6 +916,11 @@ class UserPictureTestCase extends Drupal
 
       // Check if file is located in proper directory.
       $this->assertTrue(is_file($pic_path), t('File is located in proper directory'));
+
+      // Wait a one second to get new filename.
+      sleep(1);
+      $pic_path2 = $this->saveUserPicture($image2);
+      $this->assertNotEqual($pic_path, $pic_path2, t('Filename of second picture is different.'));
     }
   }
 
@@ -921,11 +928,13 @@ class UserPictureTestCase extends Drupal
     $edit = array('files[picture_upload]' => drupal_realpath($image->uri));
     $this->drupalPost('user/' . $this->user->uid . '/edit', $edit, t('Save'));
 
-    $img_info    = image_get_info($image->uri);
-    $picture_dir = variable_get('user_picture_path', 'pictures');
-    $pic_path    = 'public://' . $picture_dir . '/picture-' . $this->user->uid . '.' . $img_info['extension'];
+    // Load actual user data from database.
+    $account = user_load($this->user->uid, TRUE);
+    if (isset($account->picture)) {
+      return $account->picture->uri;
+    }
 
-    return $pic_path;
+    return NULL;
   }
 }
 
