diff --git a/core/includes/menu.inc b/core/includes/menu.inc
index 6492b10..346a8b9 100644
--- a/core/includes/menu.inc
+++ b/core/includes/menu.inc
@@ -531,7 +531,22 @@ function _menu_load_objects(&$item, &$map) {
               $args[$i] = &$map;
             }
             if (is_int($arg)) {
-              $args[$i] = isset($path_map[$arg]) ? $path_map[$arg] : '';
+              // If we loaded the specified $arg index in already, supply the
+              // loaded argument. This is the case when e.g. two dynamic
+              // placeholders appear within a single router path, and the
+              // 'load arguments' specify the integer index of the first
+              // argument, in order to pass the loaded argument to the second
+              // argument loader.
+              if (isset($map[$arg])) {
+                $args[$i] = $map[$arg];
+              }
+              // Otherwise, supply the string argument, if any.
+              elseif (isset($path_map[$arg])) {
+                $args[$i] = $path_map[$arg];
+              }
+              else {
+                $args[$i] = '';
+              }
             }
           }
           array_unshift($args, $value);
diff --git a/core/modules/image/image.module b/core/modules/image/image.module
index 221e07c..f0d9095 100644
--- a/core/modules/image/image.module
+++ b/core/modules/image/image.module
@@ -66,7 +66,7 @@ function image_help($path, $arg) {
       $effect = image_effect_definition_load($arg[7]);
       return isset($effect['help']) ? ('<p>' . $effect['help'] . '</p>') : NULL;
     case 'admin/config/media/image-styles/edit/%/effects/%':
-      $effect = ($arg[5] == 'add') ? image_effect_definition_load($arg[6]) : image_effect_load($arg[6], $arg[4]);
+      $effect = ($arg[5] == 'add') ? image_effect_definition_load($arg[7]) : menu_get_object('image_effect', 7);
       return isset($effect['help']) ? ('<p>' . $effect['help'] . '</p>') : NULL;
   }
 }
@@ -1004,8 +1004,8 @@ function image_effects() {
  *
  * @param $ieid
  *   The image effect ID.
- * @param $style_name
- *   The image style name.
+ * @param \Drupal\image\Plugin\Core\Entity\ImageStyle $style
+ *   The image style.
  *
  * @return
  *   An image effect array, consisting of the following keys:
@@ -1018,8 +1018,8 @@ function image_effects() {
  *   found.
  * @see image_effect_definition_load()
  */
-function image_effect_load($ieid, $style_name) {
-  if (($style = entity_load('image_style', $style_name)) && isset($style->effects[$ieid])) {
+function image_effect_load($ieid, $style) {
+  if (isset($style->effects[$ieid])) {
     $effect = $style->effects[$ieid];
     $definition = image_effect_definition_load($effect['name']);
     $effect = array_merge($definition, $effect);
