diff --git a/flag.flag.inc b/flag.flag.inc
index 254b593..8ed64e2 100644
--- a/flag.flag.inc
+++ b/flag.flag.inc
@@ -29,13 +29,37 @@ function flag_flag_type_info() {
     ),
   );
 
-  if (module_exists('comment')) {
-    $definitions['comment'] = array(
-      'title' => t('Comments'),
-      'description' => t('Comments are responses to node content.'),
-      'handler' => 'flag_comment',
-    );
-  }
+  return $definitions;
+}
+
+/**
+ * Implement hook_flag_type_info() on behalf of the core Comment module.
+ */
+function comment_flag_type_info() {
+  $definitions['comment'] = array(
+    'title' => t('Comments'),
+    'description' => t('Comments are responses to node content.'),
+    'handler' => 'flag_comment',
+  );
+
+  return $definitions;
+}
+
+/**
+ * Implement hook_flag_type_info() on behalf of the core Taxonomy module.
+ */
+function taxonomy_flag_type_info() {
+  $definitions['taxonomy_term'] = array(
+    'title' => t('Taxonomy Terms'),
+    'description' => t('Taxonomy terms are used to categorize content.'),
+    'handler' => 'flag_entity',
+  );
+
+  $definitions['taxonomy_vocabulary'] = array(
+    'title' => t('Taxonomy Vocabularies'),
+    'description' => t('Taxonomy vocabularies are used to group taxonomy terms.'),
+    'handler' => 'flag_entity',
+  );
 
   return $definitions;
 }
