Index: imagefield_crop.js
===================================================================
--- imagefield_crop.js	(revision 24947)
+++ imagefield_crop.js	(working copy)
@@ -12,7 +12,11 @@
     }
     $('.cropbox', context).each(function() {
       var self = $(this);
-      
+
+      // If cropbox is contained in a hidden feildset, temporarily show it.
+      var hiddenAncestor = self.closest('fieldset:hidden');
+      hiddenAncestor.show();
+
       // get the id attribute for multiple image support
       var self_id = self.attr('id');
       var id = self_id.substring(0, self_id.indexOf('-cropbox'));
@@ -54,9 +58,30 @@
           parseInt($(".edit-image-crop-height", widget).val()) + parseInt($(".edit-image-crop-y", widget).val())
         ]
       });
+      
+      // If cropbox is contained in a hidden feildset, rehide it.
+      // Setting a timeout here is a crappy workaround, but it works.
+      hideAncestor = function() {
+        hiddenAncestor.hide();
+      }
+      setTimeout(hideAncestor, 1000);
     });
   };
   
 };
 
+// This function is part of jQuery as of v1.3. 
+// We need to add it here because Drupal 6 comes with v.1.12.
+(function($) {
+  $.fn.closest = function (selector) {
+    return this.map(function(){
+      var cur = this;
+      while ( cur && cur.ownerDocument ) {
+        if ( $(cur).is(selector) )
+          return cur;
+        cur = cur.parentNode;
+      }
+    });
+  }
+})(jQuery);
 
