diff --git a/core/modules/image/image.module b/core/modules/image/image.module
index a0816e4..c1e2fab 100644
--- a/core/modules/image/image.module
+++ b/core/modules/image/image.module
@@ -583,7 +583,18 @@ function image_style_options($include_empty = TRUE) {
   if ($include_empty && !empty($styles)) {
     $options[''] = t('<none>');
   }
-  $options = array_merge($options, drupal_map_assoc(array_keys($styles)));
+  // iterating through the associative array to capture the keys instead of
+  // using array_keys() because the latter loses the data type of the keys,
+  // turning associative string keys into numeric ones.
+  $keys = array();
+  foreach($styles as $key => $value) {
+      $keys[] = (string)$key;
+  }
+  // using the array concatenation operator '+' here instead of array_merge()
+  // because the latter loses the datatype of the array keys, turning
+  // associative string keys into numeric ones without warning.
+  $options = $options + drupal_map_assoc($keys);
+
   if (empty($options)) {
     $options[''] = t('No defined styles');
   }
