=== modified file 'INSTALL.txt'
--- INSTALL.txt	2007-11-24 20:35:36 +0000
+++ INSTALL.txt	2007-12-15 02:07:38 +0000
@@ -37,6 +37,11 @@ you will need PHP's XML extension. This 
 - If you want support for clean URLs, you'll need mod_rewrite and the ability
 to use local .htaccess files.
 
+- To use the integrated "Update status" module to check for available updates of
+  Drupal core and any installed contributed modules and themes, the web server
+  process (f.e. httpd) needs to be able to instantiate outbound connections.
+  This is usually possible, but some hosting providers forbid such connections.
+
 INSTALLATION
 ------------
 

=== modified file 'modules/system/system.install'
--- modules/system/system.install	2007-12-14 17:00:13 +0000
+++ modules/system/system.install	2007-12-15 02:06:58 +0000
@@ -236,6 +236,13 @@ function system_requirements($phase) {
       $requirements['update status'] = array(
         'value' => $t('Enabled'),
       );
+      if (variable_get('drupal_http_request_fail', FALSE)) {
+        $requirements['http requests'] = array(
+          'value' => $t('Fails'),
+          'severity' => REQUIREMENT_ERROR,
+          'description' => $t('For some reason (webserver or PHP setting) Drupal can not fetch webpages. Because of this, it is impossible to download update information.'),
+        );
+      }
     }
     $requirements['update status']['title'] = $t('Update notifications');
   }

=== modified file 'modules/update/update.fetch.inc'
--- modules/update/update.fetch.inc	2007-10-20 21:57:49 +0000
+++ modules/update/update.fetch.inc	2007-12-15 02:09:13 +0000
@@ -42,12 +42,20 @@ function _update_refresh() {
   if ($data) {
     $parser = new update_xml_parser;
     $available = $parser->parse($data);
+  }
+  if (!empty($available) && is_array($available)) {
     $frequency = variable_get('update_check_frequency', 1);
     cache_set('update_info', $available, 'cache_update', time() + (60 * 60 * 24 * $frequency));
     variable_set('update_last_check', time());
     watchdog('update', 'Fetched information about all available new releases and updates.', array(), WATCHDOG_NOTICE, l('view', 'admin/reports/updates'));
   }
   else {
+    // Can we do any fetch at all?
+    $json = menu_execute_active_handler('admin/settings/clean-urls/check');
+    $result = drupal_http_request(url('admin/settings/clean-urls/check'), array('absolute' => TRUE));
+    if (!isset($result->data) || $result->data != $json) {
+      variable_set('drupal_http_request_fail', TRUE);
+    }
     watchdog('update', 'Unable to fetch any information about available new releases and updates.', array(), WATCHDOG_ERROR, l('view', 'admin/reports/updates'));
   }
   return $available;

