diff --git a/includes/imagecrop.class.inc b/includes/imagecrop.class.inc
index 73af13c..de31525 100644
--- a/includes/imagecrop.class.inc
+++ b/includes/imagecrop.class.inc
@@ -339,7 +339,8 @@ class ImageCrop {
   public function getCropDestination($filepath = TRUE, $add_timestamp = TRUE) {
     $image_url = ($filepath) ?  file_create_url($this->cropDestination) : $this->cropDestination;
     if ($add_timestamp) {
-      $image_url .= '?time=' . $_SERVER['REQUEST_TIME'];
+      $image_url .= (strpos($image_url, '?') !== FALSE ? '&' : '?');
+      $image_url .= 'time=' . $_SERVER['REQUEST_TIME'];
     }
     return $image_url;
   }
diff --git a/js/imagecrop.js b/js/imagecrop.js
index 2f9c97a..be31793 100644
--- a/js/imagecrop.js
+++ b/js/imagecrop.js
@@ -28,7 +28,8 @@ Drupal.Imagecrop.changeViewedImage = function(style_name) {
  */
 Drupal.Imagecrop.refreshImage = function() {
   var source = $(this).attr('src');
-  $(this).attr('src', (source + '?time=' + new Date().getTime()));
+  var delimeter = source.indexOf('?') === -1 ? '?' : '&';
+  $(this).attr('src', (source + delimeter + 'time=' + new Date().getTime()));
 }
 
 })(jQuery); 
\ No newline at end of file
diff --git a/js/imagecrop.ui.crop.js b/js/imagecrop.ui.crop.js
index 5646994..cfd2c59 100644
--- a/js/imagecrop.ui.crop.js
+++ b/js/imagecrop.ui.crop.js
@@ -172,9 +172,10 @@ Drupal.Imagecrop.cropUi.applyEffects = function() {
         }      	
       	
         // force new backgrounds and width / height
-        var background = Drupal.Imagecrop.cropFile + '?time=' +  new Date().getTime();
+        var delimeter = Drupal.Imagecrop.cropFile.indexOf('?') === -1 ? '?' : '&';
+        var background = Drupal.Imagecrop.cropFile + delimeter +'time=' +  new Date().getTime();
         Drupal.Imagecrop.jcrop.setImage(background, function() {
-        	var coordinates = Drupal.Imagecrop.cropUi.getCoordinates();
+          var coordinates = Drupal.Imagecrop.cropUi.getCoordinates();
           this.animateTo(coordinates);
         });
         
