diff --git admin_menu.js admin_menu.js
index 87432c4..d36b4ec 100644
--- admin_menu.js
+++ admin_menu.js
@@ -47,4 +47,46 @@ $(document).ready(function() {
       uls.css({left: '-999em', display: 'none'});
     }, 400);
   });
+
+  // This requires that a margin-top is active and was added.
+  if (Drupal.settings.admin_menu.margin_top) {
+    // Extend jQuery with ':absolute' selector.
+    jQuery.extend(jQuery.expr[':'], {
+      absolute: 'jQuery(a).css("position")=="absolute"',
+      relative: 'jQuery(a).css("position")=="relative"'
+    });
+    var height = parseInt($('#admin-menu').height());
+    // Offset every absolute positioned element with our height.
+    $(':absolute:not(#admin-menu)').each(function () {
+      if (!$(this).parents(':relative').size()) {
+	var top = $(this).css('top');
+	if (top != 'auto' && top != 'inherit') {
+	  $(this).css('top', (parseInt(top) + height) + 'px');
+	}
+      }
+    });
+    // Offset body background with our height
+    if ($("body").css("background-image")) {
+      var background_position = $("body").css("background-position").split(' ');
+      var vertical_position = background_position[1];
+      // Unlikely, but is the unit something other than px?
+      var unit = vertical_position.match(/^[-+]?\d+\.?\d*([a-z%]+)?$/i);
+      if (unit && unit[1] != 'px' && vertical_position != '0%') {
+	unit = unit[1];
+	// Percentage?
+	if (unit == '%') {
+	  vertical_position = $('body').height() * (parseInt(vertical_position) / 100);
+	}
+	// Very very unlikely that we get here
+	else {
+	  return;
+	}
+      }
+      else {
+	vertical_position = parseInt(vertical_position);
+      }
+      vertical_position += height;
+      $('body').css('background-position', background_position[0] + ' ' + vertical_position + 'px');
+    }
+  }
 });
