Index: wp-includes/comment.php
===================================================================
--- wp-includes/comment.php	(revision 9376)
+++ wp-includes/comment.php	(working copy)
@@ -194,8 +194,7 @@
 	else
 		$approved = "( comment_approved = '0' OR comment_approved = '1' )";
 
-	if ( 'ASC' != $order )
-		$order = 'DESC';
+	$order = ( 'ASC' == $order ) ? 'ASC' : 'DESC';
 
 	$orderby = 'comment_date_gmt';  // Hard code for now
 
@@ -484,6 +483,9 @@
  * Calculate the total number of comment pages.
  *
  * @since 2.7.0
+ * @uses get_query_var() Used to fill in the default for $per_page parameter.
+ * @uses get_option() Used to fill in defaults for parameters.
+ * @uses Walker_Comment
  *
  * @param array $comments Optional array of comment objects.  Defaults to $wp_query->comments
  * @param int $per_page Optional comments per page.
@@ -523,6 +525,9 @@
  * Calculate what page number a comment will appear on for comment paging.
  *
  * @since 2.7.0
+ * @uses get_comment() Gets the full comment of the $comment_ID parameter.
+ * @uses get_option() Get various settings to control function and defaults.
+ * @uses get_page_of_comment() Used to loop up to top level comment.
  *
  * @param int $comment_ID Comment ID.
  * @param int $per_page Optional comments per page.
@@ -535,20 +540,18 @@
 	if ( !get_option('page_comments') )
 		return 1;
 
-	$comments = array_reverse( get_comments( $comment->comment_post_ID ) );
-
 	if ( null === $per_page )
 		$per_page = get_option('comments_per_page');
 
 	if ( null === $threaded )
 		$threaded = get_option('thread_comments');
 
-	// Find this comment's top level parent
-	if ( $threaded ) {
-		while ( 0 != $comment->comment_parent )
-			$comment = get_comment( $comment->comment_parent );
-	}
+	// If threaded and this comment isn't top level, we need the page of the parent (this'll loop until top level)
+	if ( $threaded && 0 != $comment->comment_parent )
+		return get_page_of_comment( $comment->comment_parent, $per_page, $threaded );
 
+	$comments = get_comments( array( 'post_id' => $comment->comment_post_ID, 'order' => 'ASC' ) );
+
 	// Start going through the comments until we find what page number the above top level comment is on
 	$page = 1;
 	$comthispage = 0;
