diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module
index c495a1e..05a8799 100644
--- a/core/modules/taxonomy/taxonomy.module
+++ b/core/modules/taxonomy/taxonomy.module
@@ -1850,6 +1850,36 @@ function taxonomy_node_predelete($node) {
 }
 
 /**
+ * Implements hook_node_view_alter().
+ */
+function taxonomy_node_view_alter(&$build) {
+  // Add terms to rss feed.
+  if ($build['#view_mode'] == 'rss') {
+    $node = $build['#node'];
+    // Select term_reference fields associated with this content type.
+    $query = db_select('field_config_instance', 'instance');
+    $query->join('field_config', 'config', 'instance.field_name = config.field_name');
+    $result = $query
+      ->fields('instance', array('field_name'))
+      ->condition('config.module', 'taxonomy')
+      ->condition('instance.bundle', $node->type)
+      ->execute();
+    foreach($result as $field) {
+      $term_name = $field->field_name;
+      if ($terms = $node->$term_name) {
+        foreach ($terms[$node->language] as $term) {
+          $build['#node']->rss_elements[] = array(
+            'key' => 'category',
+            'value' => $term['taxonomy_term']->name,
+            'attributes' => array('domain' => url('taxonomy/term/' . $term['tid'], array('absolute' => TRUE))),
+          );
+        }
+      }
+    }
+  }
+}
+
+/**
  * Deletes taxonomy index entries for a given node.
  *
  * @param $node
