diff --git a/manualcrop.module b/manualcrop.module
index a64b20f..6e75d95 100644
--- a/manualcrop.module
+++ b/manualcrop.module
@@ -882,7 +882,7 @@ function manualcrop_image_effect_info() {
       'label' => t('Manual crop'),
       'help' => t('Crop a freely user-selected area.'),
       'effect callback' => 'manualcrop_crop_effect',
-      'dimensions callback' => 'image_resize_dimensions',
+      'dimensions callback' => 'manualcrop_resize_dimensions',
       'form callback' => 'manualcrop_crop_form',
       'summary theme' => 'manualcrop_crop_summary',
     ),
@@ -1024,6 +1024,38 @@ function manualcrop_insert_styles() {
 }
 
 /**
+ * Image dimensions callback; Resize.
+ *
+ * @param $dimensions
+ *   Dimensions to be modified - an array with components width and height, in
+ *   pixels.
+ * @param $data
+ *   An array of attributes to use when performing the resize effect with the
+ *   following items:
+ *   - "width": An integer representing the desired width in pixels.
+ *   - "height": An integer representing the desired height in pixels.
+ *   - "path": The path of the image file relative to the Drupal files
+ *     directory.
+ */
+function manualcrop_resize_dimensions(array &$dimensions, array $data) {
+  // The new image will have the exact dimensions defined for the effect.
+  if ($data['width'] && $data['height']) {
+    image_dimensions_scale($dimensions, $data['width'], $data['height']);
+  }
+  else {
+    // The width and height will be possibly overwritten for the cropping, so copy the data array for later.
+    $scale_data = $data;
+    $crop = manualcrop_load_crop_selection($data['path'], $data["style_name"]);
+
+    if ($crop) {
+      // Only crop if a crop was applied.
+      $dimensions["width"] = $crop->width;
+      $dimensions["height"] = $crop->height;
+    }
+  }
+}
+
+/**
  * Implements hook_form_FORM_ID_alter().
  *
  * Provides integration with the File Entity and Media modules.
