diff --git a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java
index 0d08d10..41e5c56 100644
--- a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java
+++ b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/ClassEntry.java
@@ -1,12 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
- *     IBM Corporation - initial API and implementation
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug      Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20060313   130958 pmoogk@ca.ibm.com - Peter Moogk
  *******************************************************************************/
 
 package org.eclipse.wst.command.internal.env.core.data;
@@ -15,8 +18,60 @@
 
 public class ClassEntry
 {
-  public Object lastObject_;
+  // A list of getter methods for a particular class.
   public Vector getterList_;
+  
+  // A list of setter methods for a particular class.
   public Vector setterList_;
-  public int    order_;
+  
+  // A list of instance objects for this class.  Only the last entry
+  // should be looked at. 
+  private Vector objectList_ = new Vector();
+  
+  // A list of Interger objects that represent an ordering of objects.
+  // The number of entries in the objectList vector and the orderList vector
+  // should be the same.  Each entry in the objectList vector is
+  // corelated with each entry in the orderList vector.
+  private Vector orderList_ = new Vector();
+  
+  public void addObject( Object object, int order )
+  {
+    objectList_.add(object);
+    orderList_.add( new Integer(order) );
+  }
+  
+  public Object getLastObject()
+  {
+    Object result = null;
+    
+    if( objectList_.size() > 0 )
+    {
+      result = objectList_.lastElement();
+    }
+      
+    return result;
+  }
+  
+  public int getLastOrder()
+  {
+    int result = -1;
+    
+    if( orderList_.size() > 0 )
+    {
+      result = ((Integer)orderList_.lastElement()).intValue();
+    }
+      
+    return result;
+  }
+  
+  public void removeObject( Object object )
+  {
+    int removalIndex = objectList_.indexOf(object);
+    
+    if( removalIndex != -1 )
+    {
+      objectList_.remove(removalIndex);
+      orderList_.remove(removalIndex);
+    }   
+  }
 }
diff --git a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java
index 30ce90f..e7ffe03 100644
--- a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java
+++ b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/data/DataFlowManager.java
@@ -1,12 +1,15 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
- *     IBM Corporation - initial API and implementation
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug      Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20060313   130958 pmoogk@ca.ibm.com - Peter Moogk
  *******************************************************************************/
 package org.eclipse.wst.command.internal.env.core.data;
 
@@ -24,7 +27,7 @@
   private DataMappingRegistryImpl registry_;
   private Hashtable               classTable_;
   private int                     order_;
-  private IEnvironment				environment_;
+  private IEnvironment				    environment_;
   
   public DataFlowManager( DataMappingRegistryImpl registry, IEnvironment environment )
   {
@@ -39,6 +42,20 @@
     return registry_; 
   }
   
+  // Remove this instance object from the mapping table.
+  public void unprocess( Object object )
+  {
+    String     objectType = object.getClass().getName();
+    ClassEntry classEntry = (ClassEntry)classTable_.get( objectType );
+
+    if( classEntry != null )
+    {
+      classEntry.removeObject(object);
+    }
+  }
+  
+  // Add this object to our mapping table and call the setters
+  // that have corresponding getter objects.
   public void process( Object object )
   {
     // Add this object to the classTable_ if required.
@@ -52,9 +69,8 @@
       classEntry = new ClassEntry();
       classTable_.put( objectType, classEntry );
     }
-    
-    classEntry.lastObject_ = object;
-    classEntry.order_      = order_++;
+        
+    classEntry.addObject(object, order_++ );
     
     // Now process the setters for this object
     Vector ruleEntries  = registry_.getRuleEntries( objectType );
@@ -160,22 +176,27 @@
     
     if( classEntry != null )
     {
-      if( classEntry.getterList_ == null )
-      {
-        // Build the getter list.
-        classEntry.getterList_ = getGetterList( classEntry.lastObject_ );
-      }
+      Object lastObject = classEntry.getLastObject();
       
-      for( int index = 0; index < classEntry.getterList_.size(); index++ )
-      {
-        Method getter = (Method)classEntry.getterList_.elementAt( index );
-        
-        if( getter.getName().equals( "get" + sourceProperty ))
+      if( lastObject != null )
+      {        
+        if( classEntry.getterList_ == null )
         {
-          getterFound.order  = classEntry.order_;
-          getterFound.method = getter;
-          getterFound.object = classEntry.lastObject_;
-          break;
+          // Build the getter list.
+          classEntry.getterList_ = getGetterList( lastObject );
+        }
+      
+        for( int index = 0; index < classEntry.getterList_.size(); index++ )
+        {
+          Method getter = (Method)classEntry.getterList_.elementAt( index );
+        
+          if( getter.getName().equals( "get" + sourceProperty ))
+          {
+            getterFound.order  = classEntry.getLastOrder();
+            getterFound.method = getter;
+            getterFound.object = lastObject;
+            break;
+          }
         }
       }
     }
diff --git a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java
index 4b98c58..131dc23 100644
--- a/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java
+++ b/bundles/org.eclipse.wst.command.env.core/src/org/eclipse/wst/command/internal/env/core/fragment/CommandFragmentEngine.java
@@ -6,7 +6,10 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- *     IBM Corporation - initial API and implementation
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug      Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20060313   130958 pmoogk@ca.ibm.com - Peter Moogk
  *******************************************************************************/
 package org.eclipse.wst.command.internal.env.core.fragment;
 
@@ -277,6 +280,7 @@
     try
     {
 	    cmd.undo( null, null );
+      dataManager_.unprocess(cmd);
     }
     catch( Exception exc )
     {
diff --git a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java
index 37a8fe0..9285f39 100644
--- a/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java
+++ b/bundles/org.eclipse.wst.command.env.ui/src/org/eclipse/wst/command/internal/env/ui/widgets/WizardPageManager.java
@@ -6,7 +6,10 @@
  * http://www.eclipse.org/legal/epl-v10.html
  * 
  * Contributors:
- *     IBM Corporation - initial API and implementation
+ * IBM Corporation - initial API and implementation
+ * yyyymmdd bug      Email and other contact information
+ * -------- -------- -----------------------------------------------------------
+ * 20060313   130958 pmoogk@ca.ibm.com - Peter Moogk
  *******************************************************************************/
 package org.eclipse.wst.command.internal.env.ui.widgets;
 
@@ -183,6 +186,10 @@
   	    undoToLastPage();
 	    }
 	  
+      // Since we are moving backwards we need to remove the
+      // current page object from the mapping table.
+      dataManager_.unprocess( currentPage_.getDataEvents() );
+      
   	  currentPage_ = page;
   	}	
   	else if( isPageVisible )
