-    my ($forum, $tpath, $info) = @_;
-    my ($tid, $mid, $indexFile, $data) = (
-      $info->{'thread'},
-      $info->{'posting'},
-      $info->{'indexFile'},
-      $info->{'data'}
-    );
-
-    my ($subject, $category, $body) = (
-      $data->{'subject'},
-      $data->{'category'},
-      $data->{'body'}
-    );
-
-    my %msgdata;
-
-    # These values may be changed by change_posting_value()
-    $subject && $msgdata{'Subject'} = $subject;
-    $category && $msgdata{'Category'} = $category;
-
-    # Thread
-    my $tfile = $tpath . '/t' . $tid . '.xml';
-    change_posting_value($tfile, 't'.$tid, 'm'.$mid, \$msgdata);
-    $body && change_posting_body($tfile, 't'.$tid, 'm'.$mid, $body);
-
-    # Forum (does not contain msg bodies)
-    if ($subject or $category) {
-        my ($f, $lthread, $lmsg, $dtd, $zlev) = get_all_threads($forum, 1, 0);
-
-        for (@{$f->{$tid}}) {
-            if ($_->{'mid'} == $mid) {
-                $subject && $_->{'subject'} = $subject;
-                $category && $_->{'cat'} = $category;
-            }
-        }
-
-        my %cfxs = (
-            'dtd'         => $dtd,
-            'lastMessage' => $lmsg,
-            'lastThread'  => $lthread
-        );
-        my $xmlstring = create_forum_xml_string($f, \%cfxs);
-        save_file($forum, $$xmlstring);
+  my ($forum, $tpath, $info) = @_;
+  my ($tid, $mid, $indexFile, $data) = (
+    $info->{'thread'},
+    $info->{'posting'},
+    $info->{'indexFile'},
+    $info->{'data'}
+  );
+
+  my ($subject, $category, $body) = (
+    $data->{'subject'},
+    $data->{'category'},
+    $data->{'body'}
+  );
+
+  my %msgdata;
+
+  # These values may be changed by change_posting_value()
+  $msgdata{'Subject'} = $subject if $subject;
+  $msgdata{'Category'} = $category if $category;
+
+  # Thread
+  my $tfile = $tpath . '/t' . $tid . '.xml';
+  change_posting_value($tfile, 't'.$tid, 'm'.$mid, \%msgdata);
+  change_posting_body($tfile, 't'.$tid, 'm'.$mid, $body) if $body;
+
+  # Forum (does not contain msg bodies)
+  if ($subject or $category) {
+    my ($f, $lthread, $lmsg, $dtd, $zlev) = get_all_threads($forum, 1, 0);
+
+    for (@{$f->{$tid}}) {
+      if ($_->{'mid'} == $mid) {
+        $_->{'subject'} = $subject if $subject;
+        $_->{'cat'} = $category if $category;
+      }
+    }
+
+   save_file($forum, create_forum_xml_string($f,{dtd=>$dtd,lastMessage=>$lmsg,lastThread$lthread}));
+  }
+