diff --git a/src/java/org/apache/fulcrum/parser/CookieParser.java b/src/java/org/apache/fulcrum/parser/CookieParser.java
index 1420e0e..0c3ba0e 100644
--- a/src/java/org/apache/fulcrum/parser/CookieParser.java
+++ b/src/java/org/apache/fulcrum/parser/CookieParser.java
@@ -100,4 +100,6 @@
      * @param name the name of the cooking to unset
      */
     void unset (String name);
+
+	boolean isValid();
 }
diff --git a/src/java/org/apache/fulcrum/parser/DefaultCookieParser.java b/src/java/org/apache/fulcrum/parser/DefaultCookieParser.java
index 524ecb3..b92bba8 100644
--- a/src/java/org/apache/fulcrum/parser/DefaultCookieParser.java
+++ b/src/java/org/apache/fulcrum/parser/DefaultCookieParser.java
@@ -154,5 +154,10 @@
     {
         set (name, " ", AGE_DELETE);
     }
+    
+    public boolean isValid() 
+    {
+    	return true;
+    }
 
 }
diff --git a/src/java/org/apache/fulcrum/parser/DefaultParserService.java b/src/java/org/apache/fulcrum/parser/DefaultParserService.java
index 5813cb0..a5811f7 100644
--- a/src/java/org/apache/fulcrum/parser/DefaultParserService.java
+++ b/src/java/org/apache/fulcrum/parser/DefaultParserService.java
@@ -40,6 +40,8 @@
 import org.apache.fulcrum.parser.ValueParser.URLCaseFolding;
 import org.apache.fulcrum.parser.pool.BaseValueParserFactory;
 import org.apache.fulcrum.parser.pool.BaseValueParserPool;
+import org.apache.fulcrum.parser.pool.CookieParserFactory;
+import org.apache.fulcrum.parser.pool.CookieParserPool;
 import org.apache.fulcrum.parser.pool.DefaultParameterParserFactory;
 import org.apache.fulcrum.parser.pool.DefaultParameterParserPool;
 
@@ -81,11 +83,16 @@
      * Use commons pool to manage parameter parsers 
      */
     private DefaultParameterParserPool parameterParserPool;
-    	
+
+    /** 
+     * Use commons pool to manage cookie parsers 
+     */
+    private CookieParserPool cookieParserPool;
+
     public DefaultParserService() 
     {
 		// Define the default configuration
-		GenericObjectPoolConfig config = new GenericObjectPoolConfig<>();
+		GenericObjectPoolConfig config = new GenericObjectPoolConfig();
 		config.setMaxIdle(1);
 	    config.setMaxTotal(DEFAULT_POOL_CAPACITY);
 
@@ -96,9 +103,13 @@
 	    // init the pool
 	    parameterParserPool 
 	    	= new DefaultParameterParserPool(new DefaultParameterParserFactory(), config);
+	    
+	    // init the pool
+	    cookieParserPool 
+	    	= new CookieParserPool(new CookieParserFactory(), config);
     }
     
-    public DefaultParserService(GenericObjectPoolConfig config) 
+    public DefaultParserService(GenericObjectPoolConfig<?> config) 
     {
 	    // init the pool
 	    valueParserPool 
@@ -271,6 +282,17 @@
 				}
             }
             
+            if ( ppClass.equals(DefaultCookieParser.class) )
+            {
+				try {
+					DefaultCookieParser parserInstance = cookieParserPool.borrowObject();
+	            	vp = (P) parserInstance;
+				} catch (Exception e) {
+				}
+            }
+            
+            
+            
             ((ParserServiceSupport)vp).setParserService(this);
             ((LogEnabled)vp).enableLogging(getLogger().getChildLogger(ppClass.getSimpleName()));
         }
diff --git a/src/java/org/apache/fulcrum/parser/pool/CookieParserFactory.java b/src/java/org/apache/fulcrum/parser/pool/CookieParserFactory.java
new file mode 100644
index 0000000..afe8677
--- /dev/null
+++ b/src/java/org/apache/fulcrum/parser/pool/CookieParserFactory.java
@@ -0,0 +1,76 @@
+package org.apache.fulcrum.parser.pool;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.pool2.BasePooledObjectFactory;
+import org.apache.commons.pool2.PooledObject;
+import org.apache.commons.pool2.impl.DefaultPooledObject;
+import org.apache.fulcrum.parser.CookieParser;
+import org.apache.fulcrum.parser.DefaultCookieParser;
+
+
+/**
+ * Factory to create {@link org.apache.fulcrum.parser.CookieParser} objects
+ *
+ * @author <a href="mailto:painter@apache.org">Jeffery Painter</a>
+ * @version $Id: CookieParserFactory.java 1851080 2019-01-16 12:07:00Z painter $
+ */
+public class CookieParserFactory
+	extends BasePooledObjectFactory<DefaultCookieParser>
+{
+
+	/* (non-Javadoc)
+	 * @see org.apache.commons.pool2.BasePooledObjectFactory#create()
+	 */
+	@Override
+	public DefaultCookieParser create() throws Exception 
+	{
+		return new  DefaultCookieParser();
+	}
+
+	/* (non-Javadoc)
+	 * @see org.apache.commons.pool2.BasePooledObjectFactory#wrap(java.lang.Object)
+	 */
+	@Override
+	public PooledObject<DefaultCookieParser> wrap(DefaultCookieParser obj) 
+	{
+		return new DefaultPooledObject<DefaultCookieParser>(obj);
+	}
+	
+   /**
+     * When an object is returned to the pool, clear the buffer.
+     */
+    @Override
+    public void passivateObject(PooledObject<DefaultCookieParser> pooledObject) 
+    {
+        pooledObject.getObject().clear();
+    }
+    
+    /* (non-Javadoc)
+     * @see org.apache.commons.pool2.BasePooledObjectFactory#validateObject(org.apache.commons.pool2.PooledObject)
+     */
+    @Override
+    public boolean validateObject(PooledObject<DefaultCookieParser> parser) 
+    {
+        return parser.getObject().isValid();
+    }
+    
+    
+}
diff --git a/src/java/org/apache/fulcrum/parser/pool/CookieParserPool.java b/src/java/org/apache/fulcrum/parser/pool/CookieParserPool.java
new file mode 100644
index 0000000..bc7323b
--- /dev/null
+++ b/src/java/org/apache/fulcrum/parser/pool/CookieParserPool.java
@@ -0,0 +1,60 @@
+package org.apache.fulcrum.parser.pool;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.pool2.PooledObjectFactory;
+import org.apache.commons.pool2.impl.GenericObjectPool;
+import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
+import org.apache.fulcrum.parser.DefaultCookieParser;
+
+/**
+ * Pool manager for {@link org.apache.fulcrum.parser.BaseValueParser} objects
+ *
+ * @author <a href="mailto:painter@apache.org">Jeffery Painter</a>
+ * @version $Id: CookieParserPool.java 1851080 2019-01-16 12:07:00Z painter $
+ */
+public class CookieParserPool extends GenericObjectPool<DefaultCookieParser> 
+{
+
+	/**
+	 * Constructor.
+	 * 
+	 * @param factory the factory
+	 */
+	public CookieParserPool(PooledObjectFactory<DefaultCookieParser> factory) 
+	{
+		super(factory);
+	}
+
+	/**
+	 * Constructor.
+	 * 
+	 * This can be used to have full control over the pool using configuration
+	 * object.
+	 * 
+	 * @param factory the factory
+	 * @param config user defined configuration
+	 */
+	public CookieParserPool(PooledObjectFactory<DefaultCookieParser> factory, GenericObjectPoolConfig config) 
+	{
+		super(factory, config);
+	}
+
+}
