diff --git a/Jcrop/js/jquery.Jcrop.js b/Jcrop/js/jquery.Jcrop.js
index e185fae..2d8756c 100644
--- a/Jcrop/js/jquery.Jcrop.js
+++ b/Jcrop/js/jquery.Jcrop.js
@@ -115,6 +115,21 @@ $.Jcrop = function(obj,opt)
 	};
 
 	var $origimg = $(obj);
+
+	// DRUPAL: Fix size of crop image.
+	// Necessary when crop image is within a hidden element when page is loaded.
+	if ($origimg[0].width != 0 && $origimg[0].height != 0) {
+		// Obtain dimensions from contained img element.
+		$origimg.width($origimg[0].width);
+		$origimg.height($origimg[0].height);
+	} else {
+		// Obtain dimensions from temporary image in case the original is not loaded yet (e.g. IE 7.0). 
+		var tempImage = new Image();
+		tempImage.src = $origimg[0].src;
+		$origimg.width(tempImage.width);
+		$origimg.height(tempImage.height);
+	} 
+
 	var $img = $origimg.clone().removeAttr('id').css(img_css);
 
 	$img.width($origimg.width());
@@ -899,6 +914,11 @@ $.Jcrop = function(obj,opt)
 		return function(e) {
 			if (options.disabled) return false;
 			if ((ord == 'move') && !options.allowMove) return false;
+
+			// DRUPAL: Fix position of crop area when dragged the very first time.
+			// Necessary when crop image is in a hidden element when page is loaded.
+			docOffset = getPos($img);
+
 			btndown = true;
 			startDragMode(ord,mouseAbs(e));
 			e.stopPropagation();
