diff --git a/admin.admin.inc b/admin.admin.inc
index 042a5a3..43c8aa1 100644
--- a/admin.admin.inc
+++ b/admin.admin.inc
@@ -30,13 +30,23 @@ function admin_settings_form() {
     ),
     '#default_value' => admin_get_settings('position'),
   );
+  $form['admin_toolbar']['init_state'] = array(
+    '#type' => 'select',
+    '#title' => t('State on first page'),
+    '#description' => t('Choose toolbar state for the first page.'),
+    '#options' => array(
+      0 => t('Collapsed'),
+      1 => t('Expanded'),
+    ),
+    '#default_value' => admin_get_settings('init_state'),
+  );
   $form['admin_toolbar']['behavior'] = array(
     '#type' => 'select',
     '#title' => t('State on new pages'),
     '#description' => t('Choose toolbar behavior on new page loads.'),
     '#options' => array(
       'df' => t('Remember from previous page'),
-      'ah' => t('Collapsed'),
+      'rs' => t('Same as first page'),
     ),
     '#default_value' => admin_get_settings('behavior'),
   );
diff --git a/admin.module b/admin.module
index fb667b6..4f684b3 100644
--- a/admin.module
+++ b/admin.module
@@ -316,21 +316,28 @@ function admin_get_settings($key = NULL) {
     // Note that this information should not be trusted in any
     // way for affecting *anything* but trivial changes to the site.
     $cookie = array();
-    if (isset($_REQUEST['DrupalAdminToolbar'])) {
-      parse_str($_REQUEST['DrupalAdminToolbar'], $cookie);
+    if (isset($_COOKIE['DrupalAdminToolbar'])) {
+      parse_str($_COOKIE['DrupalAdminToolbar'], $cookie);
     }
 
-    $settings = variable_get('admin_toolbar', array()) + array(
+    $custom_settings = variable_get('admin_toolbar', array());
+    $settings = $custom_settings + array(
       'layout' => 'vertical',
       'position' => 'nw',
+      'init_state' => 0,
       'behavior' => 'df',
       'blocks' => admin_get_default_blocks(),
-      'expanded' => isset($cookie['expanded']) ? check_plain($cookie['expanded']) : 0,
       'active_tab' => isset($cookie['activeTab']) ? check_plain($cookie['activeTab']) : 0,
     );
-    // Ensure that if behavior is set to autohide the toolbar is collapsed.
-    if ($settings['behavior'] === 'ah') {
-      $settings['expanded'] = 0;
+    
+    
+    // Expand or collapse the toolbar according to the defined behavior and initial state
+
+    if ($settings['behavior'] === 'rs') {
+      $settings['expanded'] = $settings['init_state'];
+    }
+    else {
+      $settings['expanded'] = isset($cookie['expanded']) ? check_plain($cookie['expanded']) : $settings['init_state'];
     }
   }
   if (isset($key)) {
@@ -451,8 +458,9 @@ function admin_preprocess_page(&$vars) {
     $position = admin_get_settings('position');
     $layout = admin_get_settings('layout');
     $behavior = admin_get_settings('behavior');
-    $class = admin_get_settings('expanded') ? 'admin-expanded' : '';
-    $vars['body_classes'] .= " admin-{$position} admin-{$layout} admin-{$behavior} {$class} ";
+    $expanded = admin_get_settings('expanded') ? 'admin-expanded' : '';
+    $init_state = admin_get_settings('init_state') ? 'admin-expand' : '';
+    $vars['body_classes'] .= " admin-{$position} admin-{$layout} admin-{$behavior} {$expanded} {$init_state} ";
   }
 }
 
diff --git a/includes/admin.toolbar.js b/includes/admin.toolbar.js
index c73311e..572ae72 100644
--- a/includes/admin.toolbar.js
+++ b/includes/admin.toolbar.js
@@ -38,12 +38,17 @@ Drupal.adminToolbar = {};
  */
 Drupal.adminToolbar.init = function (toolbar) {
   // Set expanded state.
-  if (!$(document.body).hasClass('admin-ah')) {
+  if (!$(document.body).hasClass('admin-rs')) {
     var expanded = this.getState('expanded');
     if (expanded == 1) {
       $(document.body).addClass('admin-expanded');
     }
   }
+  else {
+    if ($(document.body).hasClass('admin-expand')) {
+      $(document.body).addClass('admin-expanded');
+    }
+  }
 
   // Set default tab state.
   var target = this.getState('activeTab');
@@ -62,7 +67,7 @@ Drupal.adminToolbar.init = function (toolbar) {
   if (classes[1] === 'horizontal' || classes[1] === 'vertical') {
     $(document.body).addClass('admin-'+classes[1]);
   }
-  if (classes[2] === 'df' || classes[2] === 'ah') {
+  if (classes[2] === 'df' || classes[2] === 'rs') {
     $(document.body).addClass('admin-'+classes[2]);
   }
 };
@@ -143,12 +148,7 @@ Drupal.adminToolbar.toggle = function (toolbar) {
         $(document.body).animate({marginBottom:'260px'}, 'fast', function() { $(this).toggleClass('admin-expanded'); });
       }
     }
-    if ($(document.body).hasClass('admin-ah')) {
-      this.setState('expanded', 0);
-    }
-    else {
-      this.setState('expanded', 1);
-    }
+    this.setState('expanded', 1);
   }
 };
 
