Index: wp-includes/comment-template.php
===================================================================
--- wp-includes/comment-template.php	(revision 9098)
+++ wp-includes/comment-template.php	(working copy)
@@ -924,10 +924,11 @@
  * @param string $respond_id Optional. HTML ID attribute for JS cancelCommentReply function.
  * @param string $respond_root Optional. Second parameter for JS cancelCommentReply function.
  */
-function cancel_comment_reply_link($text = '', $respond_id = 'respond', $respond_root = 'content') {
+function cancel_comment_reply_link($text = '', $id = 'cancel-comment-reply-link', $hide = true) {
 	if ( empty($text) )
 		$text = __('Click here to cancel reply.');
-	echo '<a href="#" onclick="cancelCommentReply(\'' . $respond_id . '\', \'' . $respond_root . '\'); return false;">' . $text . '</a>';
+	$s = $hide ? ' style="display:none;"' : '';
+	echo '<a href="#" id="' . $id . '"' . $s . '>' . $text . '</a>';
 }
 
 /**
@@ -1046,7 +1047,7 @@
 
 		<?php echo apply_filters('comment_text', get_comment_text()) ?>
 
-		<div class="reply" style="display:none">
+		<div class="wp-comment-reply" style="display:none">
 		<?php echo comment_reply_link(array('add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['depth'])) ?>
 		<?php if ( 'ul' == $args['style'] ) : ?>
 		</div>
Index: wp-includes/js/comment-reply.js
===================================================================
--- wp-includes/js/comment-reply.js	(revision 9098)
+++ wp-includes/js/comment-reply.js	(working copy)
@@ -1,17 +1,20 @@
-function moveAddCommentForm(theId,threadId,respondId){
-	jQuery("#"+respondId).appendTo("#"+theId);
-	jQuery("#comment-parent").val(threadId);
-	jQuery("#cancel-comment-reply").show();
-	jQuery("#comment").focus();
-}
-function cancelCommentReply(respondId,respondRoot){
-	jQuery("#cancel-comment-reply").hide();
-	jQuery("#"+respondId).appendTo("#"+respondRoot);
-	document.location.href="#respond";
-	jQuery("#comment").focus();
-	jQuery("#comment-parent").val("0");
-}
-jQuery(document).ready(function($){
-	$(".thread-odd").find("div.reply").show();
-	$(".thread-even").find("div.reply").show();
-});
+var moveAddCommentForm;
+
+(function($){
+	moveAddCommentForm = function(theId,threadId,respondId){
+		var div = document.createElement('div');
+		$("#"+respondId).before( $(div).attr('id', 'wp-temp-form-div').hide() ).appendTo("#"+theId);
+		$("#comment-parent").val(threadId);
+		$("#cancel-comment-reply-link").show().click(function(){
+			$("#comment-parent").val("0");
+			$('#wp-temp-form-div').after( $("#"+respondId) ).remove();
+			$(this).hide();
+			return false;
+		});
+		$("#comment").focus();
+	}
+
+	$(document).ready(function(){
+		$("div.wp-comment-reply").show();
+	});
+})(jQuery)
