diff --git a/modules/user/user.module b/modules/user/user.module
index b239799..517a671 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -501,6 +501,7 @@ function user_save($account, $edit = array(), $category = 'account') {
         file_usage_delete($account->original->picture, 'user', 'user', $account->uid);
         file_delete($account->original->picture);
       }
+      // The database stores a FID.
       $account->picture = empty($account->picture->fid) ? 0 : $account->picture->fid;
 
       // Do not allow 'uid' to be changed.
@@ -512,6 +513,10 @@ function user_save($account, $edit = array(), $category = 'account') {
         // data loss.
         return FALSE;
       }
+      // Fixes issue where user picture was deleted after calls to user_save().
+      if (is_object($account) && !is_object($account->picture) && $account->picture > 0) {
+        $account->picture = file_load($account->picture);
+      }
 
       // Reload user roles if provided.
       if ($account->roles != $account->original->roles) {
diff --git a/modules/user/user.test b/modules/user/user.test
index e2086d4..4f0b156 100644
--- a/modules/user/user.test
+++ b/modules/user/user.test
@@ -1127,6 +1127,17 @@ class UserPictureTestCase extends DrupalWebTestCase {
 
       $pic_path2 = $this->saveUserPicture($image);
       $this->assertNotEqual($pic_path, $pic_path2, 'Filename of second picture is different.');
+
+      // Check if user picture has a valid file ID after saving the user.
+      $account = user_load($this->user->uid, TRUE);
+      $this->assert(is_object($account->picture), 'User picture object is valid after user load.');
+      $this->assertNotNull($account->picture->fid, 'User picture object has a FID after user load.');
+      $this->assertTrue(is_file($account->picture->uri), 'File is located in proper directory after user load.');
+      user_save($account);
+      // Verify that the user save does destroy the user picture object.
+      $this->assert(is_object($account->picture), 'User picture object is valid after user save.');
+      $this->assertNotNull($account->picture->fid, 'User picture object has a FID after user save.');
+      $this->assertTrue(is_file($account->picture->uri), 'File is located in proper directory after user save.');
     }
   }
 
