Index: ec_common/js/ahah.js
===================================================================
--- ec_common/js/ahah.js	(revision 54)
+++ ec_common/js/ahah.js	(working copy)
@@ -147,7 +147,11 @@
  * Handler for the form redirection completion.
  */
 Drupal.ahah.prototype.success = function (response, status) {
+  var wrapper = $(this.wrapper);
   var form = $(this.element).parents('form');
+  // Manually insert HTML into the jQuery object, using $() directly crashes
+  // Safari with long string lengths. http://dev.jquery.com/ticket/1152
+  var new_content = $('<div></div>').html(response.data);
 
   // Restore the previous action and target to the form.
   form.attr('action', this.form_action);
@@ -165,13 +169,32 @@
 
   // Add the new content to the page.
   Drupal.freezeHeight();
+  if (this.method == 'replace') {
+    wrapper.empty().append(new_content);
+  }
+  else {
+    wrapper[this.method](new_content);
+  }
 
-  // If settings have been returned by the request then add them to Drupal.settings
-  if (typeof(response.settings) != 'undefined') {
-    jQuery.extend(Drupal.settings, response.settings);
+  // Immediately hide the new content if we're using any effects.
+  if (this.showEffect != 'show') {
+    new_content.hide();
   }
   
-  var new_content = Drupal.invoke.apply(this, [ this.callback, response ]);
+  // Determine what effect use and what content will receive the effect, then
+  // show the new content. For browser compatibility, Safari is excluded from
+  // using effects on table rows.
+  if (($.browser.safari && $("tr.ahah-new-content", new_content).size() > 0)) {
+    new_content.show();
+  }
+  else if ($('.ahah-new-content', new_content).size() > 0) {
+    $('.ahah-new-content', new_content).hide();
+    new_content.show();
+    $(".ahah-new-content", new_content)[this.showEffect](this.showSpeed);
+  }
+  else if (this.showEffect != 'show') {
+    new_content[this.showEffect](this.showSpeed);
+  }
 
   // Attach all javascript behaviors to the new content, if it was successfully
   // added to the page, this if statement allows #ahah[wrapper] to be optional.
