Index: flag.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/flag/Attic/flag.inc,v
retrieving revision 1.1.2.30.2.20
diff -u -r1.1.2.30.2.20 flag.inc
--- flag.inc	8 Jan 2010 05:14:24 -0000	1.1.2.30.2.20
+++ flag.inc	23 Mar 2010 13:10:56 -0000
@@ -992,6 +992,10 @@
    * Deletes a flag from the database.
    */
   function delete() {
+    // Allow modules to act before we delete.
+    foreach (module_implements('flag_delete') as $module) {
+      module_invoke($module, 'flag_delete', $this);
+    }
     db_query('DELETE FROM {flags} WHERE fid = %d', $this->fid);
     db_query('DELETE FROM {flag_content} WHERE fid = %d', $this->fid);
     db_query('DELETE FROM {flag_types} WHERE fid = %d', $this->fid);
Index: flag.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/flag/Attic/flag.module,v
retrieving revision 1.11.2.72.2.31
diff -u -r1.11.2.72.2.31 flag.module
--- flag.module	8 Jan 2010 05:17:57 -0000	1.11.2.72.2.31
+++ flag.module	23 Mar 2010 13:06:34 -0000
@@ -1303,7 +1303,9 @@
     $flags = array();
 
     // Database flags.
-    $result = db_query("SELECT f.*, fn.type FROM {flags} f LEFT JOIN {flag_types} fn ON fn.fid = f.fid");
+    $sql = "SELECT f.*, fn.type FROM {flags} f LEFT JOIN {flag_types} fn ON fn.fid = f.fid";
+    $sql = db_rewrite_sql($sql, 'flags', 'fid');
+    $result = db_query($sql);
     while ($row = db_fetch_object($result)) {
       if (!isset($flags[$row->name])) {
         $flags[$row->name] = flag_flag::factory_by_row($row);

