Index: modules/aggregator/aggregator.parser.inc =================================================================== RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.parser.inc,v retrieving revision 1.10 diff -u -p -r1.10 aggregator.parser.inc --- modules/aggregator/aggregator.parser.inc 24 Jul 2010 17:42:22 -0000 1.10 +++ modules/aggregator/aggregator.parser.inc 15 Nov 2010 04:22:59 -0000 @@ -125,7 +125,11 @@ function aggregator_parse_feed(&$data, $ else { $item['link'] = $feed->link; } - $item['guid'] = isset($item['guid']) ? $item['guid'] : ''; + + // Atom feeds have an ID tag instead of a GUID tag. + if (!isset($item['guid'])) { + $item['guid'] = isset($item['id']) ? $item['id'] : ''; + } // Atom feeds have a content and/or summary tag instead of a description tag. if (!empty($item['content:encoded'])) { Index: modules/aggregator/aggregator.test =================================================================== RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.test,v retrieving revision 1.47 diff -u -p -r1.47 aggregator.test --- modules/aggregator/aggregator.test 25 Oct 2010 15:51:21 -0000 1.47 +++ modules/aggregator/aggregator.test 15 Nov 2010 04:23:00 -0000 @@ -854,6 +854,7 @@ class FeedParserTestCase extends Aggrega $this->assertText('Atom-Powered Robots Run Amok'); $this->assertLinkByHref('http://example.org/2003/12/13/atom03'); $this->assertText('Some text.'); + $this->assertEqual('urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a', db_query('SELECT guid FROM {aggregator_item} WHERE link = :link', array(':link' => 'http://example.org/2003/12/13/atom03'))->fetchField(), 'Atom entry id element is parsed correctly.'); } }