--- Downloads/flag/flag.module	2011-09-08 22:08:43.000000000 +0300
+++ Documents/src/Drupal/drupal7/flag/flag.module	2012-04-19 16:19:07.089983076 +0300
@@ -560,17 +560,13 @@
  */
 function flag_user_login(&$edit, &$account) {
   // Migrate anonymous flags to this user's account.
-  if (module_exists('session_api') && ($sid = flag_get_sid(0))) {
-    // The @ symbol suppresses errors if the user flags a piece of content
-    // they have already flagged as a logged-in user.
-    @db_update('flag_content')
-      ->fields(array(
-        'uid' => $account->uid,
-        'sid' => 0,
-      ))
-      ->condition('uid', 0)
-      ->condition('sid', $sid)
-      ->execute();
+  if (module_exists('session_api') && $sid = flag_get_sid(0)) {
+    $query = db_select('flag_content', 'f')
+      ->fields('f')
+      ->condition('uid', 0, '=')
+      ->condition('sid', $sid, '=')
+      ->execute()
+      ->fetchAll();
 
     // Delete any remaining flags this user had as an anonymous user.
     db_delete('flag_content')
@@ -578,6 +574,14 @@
       ->condition('sid', flag_get_sid(0))
       ->execute();
 
+    if (!empty($query)) {
+      $insert = db_insert('flag_content');
+      foreach($query AS $item) {
+        $insert->fields((array) $item);
+      }
+      $insert->execute();
+    }
+
     // Clean up anonymous cookies.
     FlagCookieStorage::drop();
   }
