--- comment_form_above_comments.module.orig	2009-08-04 22:30:29.000000000 +0200
+++ comment_form_above_comments.module	2010-01-07 09:25:57.873038326 +0100
@@ -10,6 +10,7 @@
  * Comment form should be displayed on a separate page.
  */
 define('COMMENT_FORM_ABOVE', 2);
+$_comment_form_above_comments_form = '';
 
 /**
  * Implementation of hook_form_alter().
@@ -34,10 +35,10 @@ function comment_form_above_comments_for
  */
 function comment_form_above_comments_preprocess_node(&$vars) {
   $node = $vars['node'];
-
   if (variable_get('comment_form_location_'. $node->type, COMMENT_FORM_SEPARATE_PAGE) == COMMENT_FORM_ABOVE) {
     global $conf;
     $conf['comment_form_location_true'] = $node->type;
+    
     $conf['comment_form_location_'. $node->type] = COMMENT_FORM_BELOW;
   }
 }
@@ -47,8 +48,14 @@ function comment_form_above_comments_pre
  */
 function comment_form_above_comments_preprocess_box(&$vars) {
   global $conf;
+  global $_comment_form_above_comments_form;
+  
   if (isset($conf['comment_form_location_true'])) {
-    $vars = array();
+   if (!preg_match('`comment/reply/(.*)`', $_REQUEST['q'])) {
+      $_comment_form_above_comments_form = $vars['content'];
+      $vars = array();
+    }
+    
     $conf['comment_form_location_'. $conf['comment_form_location_true']] = COMMENT_FORM_ABOVE;
     unset($conf['comment_form_location_true']);
   }
@@ -58,7 +65,9 @@ function comment_form_above_comments_pre
  * Add comment form on top of comments list and render it in template.
  */
 function comment_form_above_comments_preprocess_comment_wrapper(&$variables) {
-  $variables['form'] = comment_form_box(array('nid' => $variables['node']->nid), t('Post new comment'));
+  global $_comment_form_above_comments_form;
+  
+  $variables['form'] = $_comment_form_above_comments_form;
 }
 
 /**
