--- comment_form_above_comments.module.orig	2009-08-04 22:30:29.000000000 +0200
+++ comment_form_above_comments.module	2010-01-08 13:45:56.088739538 +0100
@@ -48,7 +48,10 @@ function comment_form_above_comments_pre
 function comment_form_above_comments_preprocess_box(&$vars) {
   global $conf;
   if (isset($conf['comment_form_location_true'])) {
-    $vars = array();
+   if ( ('comment' != arg(0)) && ('reply' != arg(1))) {
+      comment_form_above_comments_save_form($vars['content']);
+      $vars['content'] = ' ';
+    }
     $conf['comment_form_location_'. $conf['comment_form_location_true']] = COMMENT_FORM_ABOVE;
     unset($conf['comment_form_location_true']);
   }
@@ -58,7 +61,7 @@ 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'));
+  $variables['form'] = comment_form_above_comments_save_form();
 }
 
 /**
@@ -87,3 +90,22 @@ function comment_form_above_comments_com
     return $output;
   }
 }
+
+/**
+ * Store and restore the given form data
+ * If the $form_data empty it gives back the stored form
+ * 
+ * @param string $form_data The form data
+ * @return mixed  TRUE on store and $form data string on restore
+ *  
+ */
+function comment_form_above_comments_save_form($form_data = ''){
+  static $form = '';
+  
+  if ($form_data){
+    $form = $form_data;
+    return TRUE;
+  }
+
+  return $form;
+}
