diff --git a/sites/all/modules/cck/content.module b/sites/all/modules/cck/content.module
index bc3850e..addb8d5 100644
--- a/sites/all/modules/cck/content.module
+++ b/sites/all/modules/cck/content.module
@@ -268,11 +268,11 @@ function content_delete_revision(&$node) {
 /**
  * Generate field render arrays.
  */
-function content_view(&$node, $teaser = FALSE, $page = FALSE) {
+function content_view(&$node, $context = 'full', $page = FALSE) {
   if ($node->in_preview) {
     _content_widget_invoke('process form values', $node);
   }
-  $content = _content_field_view($node, $teaser, $page);
+  $content = _content_field_view($node, $context, $page);
   $node->content = array_merge((array) $node->content, $content);
 }
 
@@ -312,7 +312,22 @@ function content_nodeapi(&$node, $op, $teaser, $page) {
       break;
 
     case 'view':
-      content_view($node, $teaser, $page);
+      content_view($node, $teaser ? 'teaser' : 'full', $page);
+      break;
+
+    case 'rss item':
+      $item_length = variable_get('feed_item_length', 'teaser');
+      if ($item_length == 'teaser') {
+        $body =& $node->teaser;
+      }
+      else {
+        $body =& $node->body;
+      }
+      content_view($node, 'rss');
+      if (module_exists('fieldgroup')) {
+        fieldgroup_nodeapi($node, $op, $teaser, $page);
+      }
+      $body.= drupal_render($node->content);
       break;
   }
 }
@@ -561,11 +576,11 @@ function _content_field_invoke_default($op, &$node, $teaser = NULL, $page = NULL
 /**
  * Format field output based on display settings.
  */
-function _content_field_view(&$node, $teaser = NULL, $page = NULL) {
+function _content_field_view(&$node, $context = 'full', $page = NULL) {
   $type_name = is_string($node) ? $node : (is_array($node) ? $node['type'] : $node->type);
   $type = content_types($type_name);
+  $teaser = $context == 'teaser';
   $field_types = _content_field_types();
-  $context = $teaser ? 'teaser' : 'full';
 
   $return = array();
   if (count($type['fields'])) {
diff --git a/sites/all/modules/cck/content_admin.inc b/sites/all/modules/cck/content_admin.inc
index ece0077..60d88d3 100644
--- a/sites/all/modules/cck/content_admin.inc
+++ b/sites/all/modules/cck/content_admin.inc
@@ -450,6 +450,7 @@ function _content_admin_display_contexts() {
   return array(
     'teaser' => t('Teaser'),
     'full' => t('Full'),
+    'rss' => t('RSS'),
   );
 }
 
@@ -1474,4 +1475,4 @@ function content_db_change_column($table, $column, $column_new, $type, $attribut
       db_query('ALTER TABLE {'. $table .'} CHANGE '. $column .' '. $column_new .' '. $type .' '. $not_null .' '. $default);
       break;
   }
-}
\ No newline at end of file
+}
diff --git a/sites/all/modules/cck/fieldgroup.module b/sites/all/modules/cck/fieldgroup.module
index 18ce14d..fee321f 100644
--- a/sites/all/modules/cck/fieldgroup.module
+++ b/sites/all/modules/cck/fieldgroup.module
@@ -363,7 +363,8 @@ function fieldgroup_content_admin_field_remove_submit($form_id, &$form_values) {
 function fieldgroup_nodeapi(&$node, $op, $teaser, $page) {
   switch ($op) {
     case 'view':
-      $context = $teaser ? 'teaser' : 'full';
+    case 'rss item':
+      $context = $op == 'view' ? ($teaser ? 'teaser' : 'full') : 'rss';
       foreach (fieldgroup_groups($node->type) as $group_name => $group) {
         $label = $group['settings']['display']['label'] == 'above';
         $element = array(
diff --git a/sites/default/settings.php b/sites/default/settings.php
index b98fe19..64bb17d 100644
--- a/sites/default/settings.php
+++ b/sites/default/settings.php
@@ -90,7 +90,7 @@
  *   $db_url = 'mysqli://username:password@localhost/databasename';
  *   $db_url = 'pgsql://username:password@localhost/databasename';
  */
-$db_url = 'mysql://username:password@localhost/databasename';
+$db_url = 'mysql://drupal:drupal@localhost/drupal_twitdb';
 $db_prefix = '';
 
 /**
