diff --git a/core/modules/shortcut/shortcut.module b/core/modules/shortcut/shortcut.module
index be29dce..f59f94b 100644
--- a/core/modules/shortcut/shortcut.module
+++ b/core/modules/shortcut/shortcut.module
@@ -766,3 +766,9 @@ function shortcut_set_title($shortcut_set) {
   return $shortcut_set->title;
 }
 
+/**
+ * Implements hook_toolbar_drawer().
+ */
+function shortcut_toolbar_drawer() {
+  return TRUE;
+}
diff --git a/core/modules/toolbar/toolbar.api.php b/core/modules/toolbar/toolbar.api.php
new file mode 100644
index 0000000..4192a7d
--- /dev/null
+++ b/core/modules/toolbar/toolbar.api.php
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * @file
+ * Hooks provided by the Toolbar module.
+ */
+
+/**
+ * @addtogroup hooks
+ * @{
+ */
+
+/**
+ * Declare that your module requires the toolbar drawer display.
+ *
+ * @return bool
+ *   TRUE when a toolbar drawer should exist, FALSE otherwise.
+ *
+ * @see _toolbar_has_drawer()
+ */
+function hook_toolbar_drawer() {
+  return TRUE;
+}
+
+/**
+ * @} End of "addtogroup hooks".
+ */
diff --git a/core/modules/toolbar/toolbar.module b/core/modules/toolbar/toolbar.module
index 904a2f8..d301535 100644
--- a/core/modules/toolbar/toolbar.module
+++ b/core/modules/toolbar/toolbar.module
@@ -114,6 +114,22 @@ function _toolbar_is_collapsed() {
 }
 
 /**
+ * Determines if the toolbar has a drawer.
+ *
+ * @return bool
+ *   TRUE when a drawer exists, FALSE when it does not.
+ */
+function _toolbar_has_drawer() {
+  foreach (module_implements('toolbar_drawer') as $module) {
+    $function = $module . '_toolbar_drawer';
+    if ($function()) {
+      return TRUE;
+    }
+  }
+  return FALSE;
+}
+
+/**
  * Implements hook_page_build().
  *
  * Add admin toolbar to the page_top region automatically.
@@ -147,7 +163,7 @@ function toolbar_pre_render($toolbar) {
 function toolbar_preprocess_html(&$vars) {
   if (isset($vars['page']['page_top']['toolbar']) && user_access('access toolbar')) {
     $vars['classes_array'][] = 'toolbar';
-    if (!_toolbar_is_collapsed()) {
+    if (_toolbar_has_drawer() && !_toolbar_is_collapsed()) {
       $vars['classes_array'][] = 'toolbar-drawer';
     }
   }
@@ -259,24 +275,25 @@ function toolbar_view() {
     '#attributes' => array('id' => 'toolbar-home'),
   );
 
-  // Add an anchor to be able to toggle the visibility of the drawer.
-  $build['toolbar_toggle'] = array(
-    '#theme' => 'toolbar_toggle',
-    '#collapsed' => _toolbar_is_collapsed(),
-    '#attributes' => array('class' => array('toggle')),
-  );
+  if (_toolbar_has_drawer()) {
+    // Add an anchor to be able to toggle the visibility of the drawer.
+    $build['toolbar_toggle'] = array(
+      '#theme' => 'toolbar_toggle',
+      '#collapsed' => _toolbar_is_collapsed(),
+      '#attributes' => array('class' => array('toggle')),
+    );
 
-  // Prepare the drawer links CSS classes.
-  $toolbar_drawer_classes = array(
-    'toolbar-drawer',
-    'clearfix',
-  );
-  if (_toolbar_is_collapsed()) {
-    $toolbar_drawer_classes[] = 'collapsed';
+    // Prepare the drawer links CSS classes.
+    $toolbar_drawer_classes = array(
+      'toolbar-drawer',
+      'clearfix',
+    );
+    if (_toolbar_is_collapsed()) {
+      $toolbar_drawer_classes[] = 'collapsed';
+    }
+    $build['toolbar_drawer']['#type'] = 'container';
+    $build['toolbar_drawer']['#attributes']['class'] = $toolbar_drawer_classes;
   }
-  $build['toolbar_drawer']['#type'] = 'container';
-  $build['toolbar_drawer']['#attributes']['class'] = $toolbar_drawer_classes;
-
   return $build;
 }
 
