diff --git a/adaptive_image.module b/adaptive_image.module
index 2b16c0d..cddd0f3 100644
--- a/adaptive_image.module
+++ b/adaptive_image.module
@@ -160,7 +160,7 @@ function _adaptive_image_form_image_effect_form_validate($form, &$form_state) {
     if(!is_numeric($width)) {
       form_set_error('resolutions', t("Values have to be seperated by comma. For example: 1382, 992, 768, 480"));
     }
-  } 
+  }
 }
 
 /**
@@ -256,4 +256,51 @@ function adaptive_image_resolution($resolutions) {
     }
   }
   return $resolution;
-}
\ No newline at end of file
+}
+
+/**
+ * Clears cached versions of a specific file in all styles.
+ *
+ * Provided because of this module create few image caches per style
+ * according to count of resolutions.
+ *
+ * @param $path
+ *   The Drupal file path to the original image.
+ *
+ * @see image_path_flush()
+ */
+function adaptive_image_path_flush($path) {
+  $styles = image_styles();
+  $image_paths = array();
+  foreach ($styles as $style) {
+    $image_path = image_style_path($style['name'], $path);
+
+    // Check for using adaptive effect.
+    $is_adaptive = FALSE;
+    foreach ($style['effects'] as $effect) {
+      if ($effect['name'] == 'adaptive_image') {
+        $is_adaptive = TRUE;
+        break;
+      }
+    }
+
+    // If using adaptive effect clear image cache for all resolutions.
+    if ($is_adaptive) {
+      $settings = adaptive_image_effect_settings($style);
+      $resolutions = explode(',', $settings['resolutions']);
+      $path_parts = pathinfo($image_path);
+      foreach ($resolutions as $resolution) {
+        $image_paths[] = $path_parts['dirname'] . '/' . $resolution . '/' . $path_parts['basename'];
+      }
+    }
+    else {
+      $image_paths[] = $image_path;
+    }
+  }
+
+  foreach ($image_paths as $path) {
+    if (file_exists($path)) {
+      file_unmanaged_delete($path);
+    }
+  }
+}
