Index: Dumpfile.pm
===================================================================
--- Dumpfile.pm	(revision 309)
+++ Dumpfile.pm	(working copy)
@@ -728,24 +728,27 @@
 #  output_node
 ###############################################################################
 sub output_node {
-    my($self, $node) = @_;
+    my $self = $_[0];
+    my $node = \$_[1];
     my $fh = $self->{fh};
 
-    my $string = $node->get_headers();
+    my $string = $$node->get_headers();
     print $fh $string;
-    $self->output_content($node->{hideprops}? undef : $node->{props},
-                          $node->{text});
+    $self->output_content($$node->{hideprops}? undef : $$node->{props},
+                          $$node->{text});
 }  #  End output_node
 
 ###############################################################################
 #  output_content
 ###############################################################################
 sub output_content {
-    my($self, $props, $text) = @_;
+    my $self = $_[0];
+    my $props = $_[1];
+    my $text = \$_[2];
 
     my $fh = $self->{fh};
 
-    $text = '' unless defined $text;
+    my $textlocal = '' unless defined $$text;
 
     my $proplen = 0;
     my $textlen = 0;
@@ -767,7 +770,12 @@
         $proplen = length($propout);
     }
 
-    $textlen = length($text);
+    if (defined $textlocal)  {
+      $textlen = length($textlocal);
+    }
+    else  {
+      $textlen = length($$text);
+    }
     return if ($textlen + $proplen == 0);
 
     if ($proplen > 0) {
@@ -779,7 +787,14 @@
     }
 
     print $fh "Content-length: " . ($proplen + $textlen)
-        . "\n\n$propout$text\n";
+        . "\n\n$propout"
+    if (defined $textlocal)  {
+      printf $fh "$textlocal\n";
+    }
+    else  {
+      syswrite($fh, $$text, $textlen);
+      printf $fh "\n";
+    }
 
 }  #  End output_content
 

