Index: feedapi.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/feedapi/feedapi.module,v
retrieving revision 1.23.2.119.2.71
diff -u -p -r1.23.2.119.2.71 feedapi.module
--- feedapi.module	4 Aug 2009 15:00:08 -0000	1.23.2.119.2.71
+++ feedapi.module	4 Aug 2009 15:58:59 -0000
@@ -934,7 +934,8 @@ function _feedapi_update(&$node) {
 
     // In that case this feed has never have feed data. Should be created then, this is not really an update
     if (!is_numeric($old_config->feed->nid)) {
-      $node->feed = _feedapi_build_feed_object($node->type, $node->feed->url);
+      $url = isset($node->feed->url) ? $node->feed->url : $node->feedapi['feedapi_url'];
+      $node->feed = _feedapi_build_feed_object($node->type, $url);
       _feedapi_insert($node);
       return;
     }
@@ -1004,7 +1005,7 @@ function _feedapi_call_parsers($feed, $p
     $feed->feed_type =  module_invoke($parser_primary, 'feedapi_feed', 'compatible', $feed, $settings_primary);
     $parser_output =  module_invoke($parser_primary, 'feedapi_feed', 'parse', $feed, $settings_primary);
     if ($parser_output === FALSE) {
-      return $parser_output;
+      return $feed;
     }
     $feed = (object) array_merge((array) $feed, (array) $parser_output);
   }
@@ -1195,7 +1196,7 @@ function _feedapi_invoke_refresh(&$feed,
   }
 
   // Step 3: See, whether feed has been modified.
-  if ($feed === FALSE || $hash_old == $feed->hash) {
+  if (!isset($feed->items) || $hash_old == $feed->hash) {
     // Updated the next_refresh_time field in any case.
     db_query("UPDATE {feedapi} SET next_refresh_time = %d, half_done = %d WHERE nid = %d", time() + $settings['refresh_time'], FALSE, $nid);
     if (!$cron) {
