Index: includes/menu.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/menu.inc,v
retrieving revision 1.133
diff -u -r1.133 menu.inc
--- includes/menu.inc	20 Aug 2006 05:57:40 -0000	1.133
+++ includes/menu.inc	24 Aug 2006 00:03:04 -0000
@@ -534,7 +534,7 @@
     return array();
   }
 
-  $links[] = l(t('Home'), variable_get('site_frontpage', 'node'));
+  $links[] = l(t('Home'), drupal_get_frontpage_path());
 
   $trail = _menu_get_active_trail();
   foreach ($trail as $mid) {
Index: includes/path.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/path.inc,v
retrieving revision 1.7
diff -u -r1.7 path.inc
--- includes/path.inc	23 Aug 2006 04:31:30 -0000	1.7
+++ includes/path.inc	24 Aug 2006 00:54:32 -0000
@@ -18,11 +18,18 @@
     $_GET['q'] = drupal_get_normal_path(trim($_GET['q'], '/'));
   }
   else {
-    $_GET['q'] = drupal_get_normal_path(variable_get('site_frontpage', 'node'));
+    $_GET['q'] = drupal_get_normal_path(drupal_get_frontpage_path());
   }
 }
 
 /**
+ * Get the path to the front page.
+ */
+function drupal_get_frontpage_path() {
+  return variable_get('welcome_message', FALSE) ? 'welcome' : variable_get('site_frontpage', 'node');
+}
+
+/**
  * Given an alias, return its Drupal system URL if one exists. Given a Drupal
  * system URL return its alias if one exists.
  *
@@ -195,7 +202,7 @@
  *   Boolean value: TRUE if the current page is the front page; FALSE if otherwise.
  */
 function drupal_is_front_page() {
-  // As drupal_init_path updates $_GET['q'] with the 'site_frontpage' path,
-  // we can check it against the 'site_frontpage' variable.
-  return $_GET['q'] == drupal_get_normal_path(variable_get('site_frontpage', 'node'));
+  // As drupal_init_path updates $_GET['q'] with the drupal_get_frontpage_path() path,
+  // we can check it against the drupal_get_frontpage_path() return value.
+  return $_GET['q'] == drupal_get_normal_path(drupal_get_frontpage_path());
 }
Index: modules/block/block.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/block/block.module,v
retrieving revision 1.222
diff -u -r1.222 block.module
--- modules/block/block.module	23 Aug 2006 04:44:36 -0000	1.222
+++ modules/block/block.module	24 Aug 2006 00:03:31 -0000
@@ -667,7 +667,7 @@
       if ($block->pages) {
         if ($block->visibility < 2) {
           $path = drupal_get_path_alias($_GET['q']);
-          $regexp = '/^('. preg_replace(array('/(\r\n?|\n)/', '/\\\\\*/', '/(^|\|)\\\\<front\\\\>($|\|)/'), array('|', '.*', '\1'. preg_quote(variable_get('site_frontpage', 'node'), '/') .'\2'), preg_quote($block->pages, '/')) .')$/';
+          $regexp = '/^('. preg_replace(array('/(\r\n?|\n)/', '/\\\\\*/', '/(^|\|)\\\\<front\\\\>($|\|)/'), array('|', '.*', '\1'. preg_quote(drupal_get_frontpage_path(), '/') .'\2'), preg_quote($block->pages, '/')) .')$/';
           $page_match = !($block->visibility xor preg_match($regexp, $path));
         }
         else {
Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.685
diff -u -r1.685 node.module
--- modules/node/node.module	23 Aug 2006 18:38:41 -0000	1.685
+++ modules/node/node.module	23 Aug 2006 23:50:32 -0000
@@ -2266,35 +2266,13 @@
     $output .= theme('pager', NULL, variable_get('default_nodes_main', 10));
   }
   else {
-    $output = t('
-      <h1 class="title">Welcome to your new Drupal website!</h1>
-      <p>Please follow these steps to set up and start using your website:</p>
-      <ol>
-        <li>
-          <strong>Create your administrator account</strong>
-          To begin, <a href="@register">create the first account</a>. This account will have full administration rights and will allow you to configure your website.
-        </li>
-        <li>
-          <strong>Configure your website</strong>
-          Once logged in, visit the <a href="@admin">administration section</a>, where you can <a href="@config">customize and configure</a> all aspects of your website.
-        </li>
-        <li>
-          <strong>Enable additional functionality</strong>
-          Next, visit the <a href="@modules">module list</a> and enable features which suit your specific needs. You can find additional modules in the <a href="@download_modules">Drupal modules download section</a>.
-        </li>
-        <li>
-          <strong>Customize your website design</strong>
-          To change the "look and feel" of your website, visit the <a href="@themes">themes section</a>. You may choose from one of the included themes or download additional themes from the <a href="@download_themes">Drupal themes download section</a>.
-        </li>
-        <li>
-          <strong>Start posting content</strong>
-          Finally, you can <a href="@content">create content</a> for your website. This message will disappear once you have published your first post.
-        </li>
-      </ol>
-      <p>For more information, please refer to the <a href="@help">help section</a>, or the <a href="%handbook">online Drupal handbooks</a>. You may also post at the <a href="@forum">Drupal forum</a>, or view the wide range of <a href="@support">other support options</a> available.</p>',
-      array('@drupal' => 'http://drupal.org/', '@register' => url('user/register'), '@admin' => url('admin'), '@config' => url('admin/settings'), '@modules' => url('admin/settings/modules'), '@download_modules' => 'http://drupal.org/project/modules', '@themes' => url('admin/build/themes'), '@download_themes' => 'http://drupal.org/project/themes', '@content' => url('node/add'), '@help' => url('admin/help'), '@handbook' => 'http://drupal.org/handbooks', '@forum' => 'http://drupal.org/forum', '@support' => 'http://drupal.org/support')
-    );
-    $output = '<div id="first-time">'. $output .'</div>';
+    $output = '<h2>'. t('There are no promoted posts.') .'</h2>';
+    if (user_access('administer nodes')) {
+      $output .= '<p>'. t('You may wish to <a href="%add">add content</a> or <a href="%administer">promote existing content</a>.', array('%add' => url('node/add'), '%administer' => url('admin/content/node'))) .'</p>';
+    }
+    if (user_access('administer site configuration')) {
+      $output .= '<p>'. t('You may wish to <a href="%settings">change your default front page setting</a>.', array('%settings' => url('admin/settings/site-information'))) .'</p>';
+    }
   }
   drupal_set_title('');
 
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.349
diff -u -r1.349 system.module
--- modules/system/system.module	23 Aug 2006 04:40:57 -0000	1.349
+++ modules/system/system.module	24 Aug 2006 00:53:54 -0000
@@ -257,6 +257,17 @@
       'callback arguments' => array('system_clean_url_settings'));
   }
   else {
+    if (variable_get('welcome_message', FALSE)) {
+      $items[] = array('path' => 'welcome', 'title' => t('Welcome'),
+        'callback' => 'system_welcome_page',
+        'access' => TRUE,
+        'type' => MENU_CALLBACK);
+      $items[] = array('path' => 'welcome/delete', 'title' => t('Welcome'),
+        'callback' => 'system_welcome_delete',
+        'access' => TRUE,
+        'type' => MENU_CALLBACK);
+    }
+
     /**
      * Use the administrative theme if the user is looking at a page in the admin/* path.
      */
@@ -1561,6 +1572,23 @@
 }
 
 /**
+ * Output a welcome page for use in initial site orientation.
+ */
+function system_welcome_page() {
+  drupal_set_title('');
+  $content = t(variable_get('welcome_message', ''), array('@drupal' => 'http://drupal.org/', '@register' => url('user/register'), '@admin' => url('admin'), '@config' => url('admin/settings'), '@modules' => url('admin/settings/modules'), '@download_modules' => 'http://drupal.org/project/modules', '@themes' => url('admin/build/themes'), '@download_themes' => 'http://drupal.org/project/themes', '@content' => url('node/add'), '@help' => url('admin/help'), '@handbook' => 'http://drupal.org/handbooks', '@forum' => 'http://drupal.org/forum', '@support' => 'http://drupal.org/support'));
+  return theme('system_welcome_page', $content);
+}
+
+/**
+ * Disable the welcome page by deleting the variable that triggers it.
+ */
+function system_welcome_delete() {
+  variable_del('welcome_message');
+  drupal_goto(drupal_get_frontpage_path());
+}
+
+/**
  * Determine if a user is in compact mode.
  */
 function system_admin_compact_mode() {
@@ -1569,6 +1597,18 @@
 }
 
 /**
+ * Theme the content of a welcome page.
+ */
+function theme_system_welcome_page($content) {
+  $output = '<div class="compact-link">';
+  $alt = t('When you\'re ready, click this link to remove the welcome page and view your regular home page.');
+  $output = l(t('Delete this welcome page'), 'welcome/delete', array('alt' => $alt, 'title' => $alt));
+  $output .= '</div>';
+  $output = '<div id="first-time">'. $output . $content .'</div>';
+  return $output;
+}
+
+/**
  * This function formats an administrative page for viewing.
  *
  * @param $blocks
Index: profiles/default/default.profile
===================================================================
RCS file: /cvs/drupal/drupal/profiles/default/default.profile,v
retrieving revision 1.1
diff -u -r1.1 default.profile
--- profiles/default/default.profile	8 Aug 2006 21:18:04 -0000	1.1
+++ profiles/default/default.profile	23 Aug 2006 23:53:34 -0000
@@ -20,3 +20,37 @@
     'description' => 'Select this profile to enable some basic Drupal functionality and the default theme.'
   );
 }
+
+/**
+ * Do setup tasks specific to this profile.
+ */
+function default_install() {
+  // Set the welcome page.
+  $welcome_message = '
+    <h1 class="title">Welcome to your new Drupal website!</h1>
+    <p>Please follow these steps to set up and start using your website:</p>
+    <ol>
+      <li>
+        <strong>Create your administrator account</strong>
+        To begin, <a href="@register">create the first account</a>. This account will have full administration rights and will allow you to configure your website.
+      </li>
+      <li>
+        <strong>Configure your website</strong>
+        Once logged in, visit the <a href="@admin">administration section</a>, where you can <a href="@config">customize and configure</a> all aspects of your website.
+      </li>
+      <li>
+        <strong>Enable additional functionality</strong>
+        Next, visit the <a href="@modules">module list</a> and enable features which suit your specific needs. You can find additional modules in the <a href="@download_modules">Drupal modules download section</a>.
+      </li>
+      <li>
+        <strong>Customize your website design</strong>
+        To change the "look and feel" of your website, visit the <a href="@themes">themes section</a>. You may choose from one of the included themes or download additional themes from the <a href="@download_themes">Drupal themes download section</a>.
+      </li>
+      <li>
+        <strong>Start posting content</strong>
+        Finally, you can <a href="@content">create content</a> for your website. This message will disappear once you have published your first post.
+      </li>
+    </ol>
+    <p>For more information, please refer to the <a href="@help">help section</a>, or the <a href="%handbook">online Drupal handbooks</a>. You may also post at the <a href="@forum">Drupal forum</a>, or view the wide range of <a href="@support">other support options</a> available.</p>';
+  variable_set('welcome_message', $welcome_message);
+}
\ No newline at end of file
