diff --git a/libraries.api.php b/libraries.api.php
index ac09743..16d0bf8 100644
--- a/libraries.api.php
+++ b/libraries.api.php
@@ -162,10 +162,13 @@
  *         variant, a boolean indicating whether the variant is installed or
  *         not.
  *       Note that in this group the 'versions' property is no longer available.
- *     - pre-load: Callbacks registered in this group are applied directly
- *       before this library is loaded. At this point the library contains
- *       variant-specific information, if specified. Note that in this group the
- *       'variants' property is no longer available.
+ *     - pre-dependencies-load: Callbacks registered in this group are applied
+ *       directly before the library's dependencies are loaded. At this point
+ *       the library contains variant-specific information, if specified. Note
+ *       that in this group the 'variants' property is no longer available.
+ *     - pre-load: Callbacks registered in this group are applied directly after
+ *       the library's dependencies are loaded and before the library itself is
+ *       loaded. 
  *     - post-load: Callbacks registered in this group are applied directly
  *       after this library is loaded. At this point, the library contains a
  *       'loaded' key, which contains the number of files that were loaded.
diff --git a/libraries.module b/libraries.module
index 18c0dd8..687fa29 100644
--- a/libraries.module
+++ b/libraries.module
@@ -423,6 +423,7 @@ function libraries_info_defaults(&$library, $name) {
     'info' => array(),
     'pre-detect' => array(),
     'post-detect' => array(),
+    'pre-dependencies-load' => array(),
     'pre-load' => array(),
     'post-load' => array(),
   );
@@ -612,6 +613,9 @@ function libraries_load($name, $variant = NULL) {
     // only be one variant of a library within a single request.
     unset($library['variants']);
 
+    // Invoke callbacks in the 'pre-dependencies-load' group.
+    libraries_invoke('pre-dependencies-load', $library);
+
     // If the library (variant) is installed, load it.
     $library['loaded'] = FALSE;
     if ($library['installed']) {
diff --git a/tests/libraries.test b/tests/libraries.test
index 13c6b39..1770162 100644
--- a/tests/libraries.test
+++ b/tests/libraries.test
@@ -320,6 +320,7 @@ class LibrariesTestCase extends DrupalWebTestCase {
               'info callback' => 'not applied',
               'pre-detect callback' => 'not applied',
               'post-detect callback' => 'not applied',
+              'pre-dependencies-load callback' => 'not applied',
               'pre-load callback' => 'not applied',
               'post-load callback' => 'not applied',
             ),
@@ -327,6 +328,7 @@ class LibrariesTestCase extends DrupalWebTestCase {
           'info callback' => 'not applied',
           'pre-detect callback' => 'not applied',
           'post-detect callback' => 'not applied',
+          'pre-dependencies-load callback' => 'not applied',
           'pre-load callback' => 'not applied',
           'post-load callback' => 'not applied',
         ),
@@ -336,6 +338,7 @@ class LibrariesTestCase extends DrupalWebTestCase {
           'info callback' => 'not applied',
           'pre-detect callback' => 'not applied',
           'post-detect callback' => 'not applied',
+          'pre-dependencies-load callback' => 'not applied',
           'pre-load callback' => 'not applied',
           'post-load callback' => 'not applied',
         ),
@@ -344,12 +347,14 @@ class LibrariesTestCase extends DrupalWebTestCase {
         'info' => array('_libraries_test_info_callback'),
         'pre-detect' => array('_libraries_test_pre_detect_callback'),
         'post-detect' => array('_libraries_test_post_detect_callback'),
+        'pre-dependencies-load' => array('_libraries_test_pre_dependencies_load_callback'),
         'pre-load' => array('_libraries_test_pre_load_callback'),
         'post-load' => array('_libraries_test_post_load_callback'),
       ),
       'info callback' => 'not applied',
       'pre-detect callback' => 'not applied',
       'post-detect callback' => 'not applied',
+      'pre-dependencies-load callback' => 'not applied',
       'pre-load callback' => 'not applied',
       'post-load callback' => 'not applied',
       'module' => 'libraries_test',
@@ -387,11 +392,13 @@ class LibrariesTestCase extends DrupalWebTestCase {
     $this->verbose('Actual:<pre>' . var_export($library, TRUE) . '</pre>');
     $this->assertEqual($library, $expected, 'Detect callback was applied correctly.');
 
-    // Test a callback in the 'pre-load' and 'post-load' phases.
+    // Test a callback in the 'pre-dependencies-load', 'pre-load' and
+    // 'post-load' phases.
     // Successfully loaded libraries should only contain information about the
     // already loaded variant.
     unset($expected['variants']);
     $expected['loaded'] = 0;
+    $expected['pre-dependencies-load callback'] = 'applied (top-level)';
     $expected['pre-load callback'] = 'applied (top-level)';
     $expected['post-load callback'] = 'applied (top-level)';
     $library = libraries_load('example_callback');
diff --git a/tests/libraries_test.module b/tests/libraries_test.module
index 67ed7f7..faae509 100644
--- a/tests/libraries_test.module
+++ b/tests/libraries_test.module
@@ -245,6 +245,7 @@ function libraries_test_libraries_info() {
             'info callback' => 'not applied',
             'pre-detect callback' => 'not applied',
             'post-detect callback' => 'not applied',
+            'pre-dependencies-load callback' => 'not applied',
             'pre-load callback' => 'not applied',
             'post-load callback' => 'not applied',
           ),
@@ -253,6 +254,7 @@ function libraries_test_libraries_info() {
         'info callback' => 'not applied',
         'pre-detect callback' => 'not applied',
         'post-detect callback' => 'not applied',
+        'pre-dependencies-load callback' => 'not applied',
         'pre-load callback' => 'not applied',
         'post-load callback' => 'not applied',
       ),
@@ -263,6 +265,7 @@ function libraries_test_libraries_info() {
         'info callback' => 'not applied',
         'pre-detect callback' => 'not applied',
         'post-detect callback' => 'not applied',
+        'pre-dependencies-load callback' => 'not applied',
         'pre-load callback' => 'not applied',
         'post-load callback' => 'not applied',
       ),
@@ -271,6 +274,7 @@ function libraries_test_libraries_info() {
       'info' => array('_libraries_test_info_callback'),
       'pre-detect' => array('_libraries_test_pre_detect_callback'),
       'post-detect' => array('_libraries_test_post_detect_callback'),
+      'pre-dependencies-load' => array('_libraries_test_pre_dependencies_load_callback'),
       'pre-load' => array('_libraries_test_pre_load_callback'),
       'post-load' => array('_libraries_test_post_load_callback'),
     ),
@@ -278,6 +282,7 @@ function libraries_test_libraries_info() {
     'info callback' => 'not applied',
     'pre-detect callback' => 'not applied',
     'post-detect callback' => 'not applied',
+    'pre-dependencies-load callback' => 'not applied',
     'pre-load callback' => 'not applied',
     'post-load callback' => 'not applied',
   );
@@ -397,6 +402,18 @@ function _libraries_test_post_detect_callback(&$library, $version, $variant) {
 }
 
 /**
+ * Sets the 'pre-dependencies-load callback' key.
+ *
+ * This function is used as a test callback for the 'pre-dependencies-load'
+ * callback group.
+ *
+ * @see _libraries_test_callback()
+ */
+function _libraries_test_pre_dependencies_load_callback(&$library, $version, $variant) {
+  _libraries_test_callback($library, $version, $variant, 'pre-dependencies-load');
+}
+
+/**
  * Sets the 'pre-load callback' key.
  *
  * This function is used as a test callback for the 'pre-load' callback group.
