Index: trunk/PS-IPP-PStamp/lib/PS/IPP/PStamp/RequestFile.pm
===================================================================
--- trunk/PS-IPP-PStamp/lib/PS/IPP/PStamp/RequestFile.pm	(revision 27899)
+++ trunk/PS-IPP-PStamp/lib/PS/IPP/PStamp/RequestFile.pm	(revision 27900)
@@ -145,8 +145,5 @@
         }
         if (@$stdout_buf) {
-            my $table =  $mdcParser->parse(join "", @$stdout_buf) or
-                die("Unable to parse metdata config doc");
-
-            $rows = parse_md_list($table);
+            $rows = parse_md_fast($mdcParser, join "", @$stdout_buf);
         } else {
             print STDERR "$request_file_name contains empty request table\n";
@@ -180,3 +177,31 @@
     return (\%header, \%req_specs);
 }
+
+sub parse_md_fast {
+    my $mdcParser = shift;
+    my $input = shift;
+    my $output = ();
+
+    my @whole = split /\n/, $input;
+    my @single = ();
+
+    my $n;
+    while ( ($n = @whole) > 0) {
+        my $value = shift @whole;
+        push @single, $value;
+        if ($value =~ /^\s*END\s*$/) {
+	    push @single, "\n";
+
+            my $list = parse_md_list( $mdcParser->parse( join("\n", @single ) ) ) or
+                print STDERR "Unable to parse metdata config doc" and return undef;
+#            my $num = @$list;
+#            print STDERR "list has $num elments\n";
+            push @$output, $list->[0];
+
+            @single = ();
+        }
+    }
+    return $output;
+}
+
 1;
