Index: /trunk/PS-IPP-Metadata-Config/lib/PS/IPP/Metadata/Config.pm
===================================================================
--- /trunk/PS-IPP-Metadata-Config/lib/PS/IPP/Metadata/Config.pm	(revision 3456)
+++ /trunk/PS-IPP-Metadata-Config/lib/PS/IPP/Metadata/Config.pm	(revision 3457)
@@ -1,5 +1,5 @@
 # Copyright (c) 2005  Joshua Hoblitt
 #
-# $Id: Config.pm,v 1.7 2005-03-19 00:45:37 jhoblitt Exp $
+# $Id: Config.pm,v 1.8 2005-03-19 01:01:46 jhoblitt Exp $
 
 package PS::IPP::Metadata::Config;
@@ -25,5 +25,5 @@
     my $class = shift;
 
-    my $self = {};
+    my $self = { _parser => Parse::RecDescent->new( $grammar ) };
 
     bless $self, $class;
@@ -37,5 +37,9 @@
     my ( $self, $metadata ) = @_;
 
-    my $tree = Parse::RecDescent->new( $grammar )->startrule( $metadata );
+    # remove any local data from a prevous run
+    # this is slightly faster then using Storable::dclone to clone a new parser
+    delete $self->{_parser}{local};
+
+    my $tree = $self->{_parser}->startrule( $metadata );
 
     return undef unless defined $tree;
