Index: admin_menu.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.inc,v
retrieving revision 1.11.2.10
diff -u -p -r1.11.2.10 admin_menu.inc
--- admin_menu.inc	12 Sep 2008 16:21:22 -0000	1.11.2.10
+++ admin_menu.inc	18 Sep 2008 20:20:01 -0000
@@ -339,6 +339,12 @@ function admin_menu_theme_settings() {
     '#default_value' => variable_get('admin_menu_margin_top', 1),
     '#description' => t('If enabled, the output of this site will be shifted for approx. 20 pixels from the top of the viewport to make room for the Administration Menu. If this setting is disabled, some absolute or fixed positioned page elements at the top of the viewport may be covered by Administration Menu.'),
   );
+  $form['admin_menu_position_fixed'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Use fixed instead of absolute positioning'),
+    '#default_value' => variable_get('admin_menu_position_fixed', 0),
+    '#description' => t('If enabled, the administration menu will always stay at the top of the browser viewport, even if you scroll down the page.') .'<br />'. t('<strong>Note:</strong> In some browsers this setting might cause malformed page contents, a disappearing cursor and not editable select lists in forms. If such effects occur, this setting should be disabled.'),
+  );
   $form['tweaks'] = array(
     '#type' => 'fieldset',
     '#title' => t('Drupal Administration Tweaks'),
Index: admin_menu.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.js,v
retrieving revision 1.7.2.4
diff -u -p -r1.7.2.4 admin_menu.js
--- admin_menu.js	8 Sep 2008 23:02:26 -0000	1.7.2.4
+++ admin_menu.js	18 Sep 2008 20:23:27 -0000
@@ -2,8 +2,13 @@
 
 $(document).ready(function() {
   // Apply margin-top if enabled; directly applying marginTop doesn't work in IE.
-  if ($('#admin-menu').size() && Drupal.settings.admin_menu.margin_top) {
-    $('body').addClass('admin-menu');
+  if ($('#admin-menu').size()) {
+    if (Drupal.settings.admin_menu.margin_top) {
+      $('body').addClass('admin-menu');
+    }
+    if (Drupal.settings.admin_menu.position_fixed) {
+      $('#admin-menu').css('position', 'fixed');
+    }
   }
 
   // Collapse fieldsets on Modules page. For why multiple selectors see #111719.
Index: admin_menu.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.module,v
retrieving revision 1.43.2.7
diff -u -p -r1.43.2.7 admin_menu.module
--- admin_menu.module	9 Sep 2008 14:39:01 -0000	1.43.2.7
+++ admin_menu.module	18 Sep 2008 20:21:50 -0000
@@ -93,7 +93,7 @@ function admin_menu_init() {
     // Performance: Defer execution.
     drupal_add_js($path .'/admin_menu.js', 'module', 'header', TRUE);
 
-    drupal_add_js(array('admin_menu' => array('margin_top' => variable_get('admin_menu_margin_top', 1))), 'setting');
+    drupal_add_js(array('admin_menu' => array('margin_top' => variable_get('admin_menu_margin_top', 1), 'position_fixed' => variable_get('admin_menu_position_fixed', 0))), 'setting');
     if ($_GET['q'] == 'admin/build/modules') {
       drupal_add_js(array('admin_menu' => array('tweak_modules' => variable_get('admin_menu_tweak_modules', 0))), 'setting');
     }
