diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOption.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOption.java
index 2b2bc7a..cb4f765 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOption.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOption.java
@@ -22,6 +22,9 @@
    REQUIRED_FOR_TRANSITION,
    NOT_REQUIRED_FOR_TRANSITION,
 
+   AUTO_SAVE,
+   NOT_AUTO_SAVE,
+
    REQUIRED_FOR_COMPLETION,
    NOT_REQUIRED_FOR_COMPLETION,
 
diff --git a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOptionHandler.java b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOptionHandler.java
index 37b7034..f2ea877 100644
--- a/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOptionHandler.java
+++ b/plugins/org.eclipse.osee.ats.api/src/org/eclipse/osee/ats/api/workdef/WidgetOptionHandler.java
@@ -62,6 +62,10 @@
          options.remove(WidgetOption.REQUIRED_FOR_TRANSITION);
       } else if (xOption == WidgetOption.REQUIRED_FOR_TRANSITION) {
          options.remove(WidgetOption.NOT_REQUIRED_FOR_TRANSITION);
+      } else if (xOption == WidgetOption.AUTO_SAVE) {
+         options.remove(WidgetOption.NOT_AUTO_SAVE);
+      } else if (xOption == WidgetOption.NOT_AUTO_SAVE) {
+         options.remove(WidgetOption.AUTO_SAVE);
       } else if (xOption == WidgetOption.NOT_ENABLED) {
          options.remove(WidgetOption.ENABLED);
       } else if (xOption == WidgetOption.ENABLED) {
diff --git a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/WidgetOptionTest.java b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/WidgetOptionTest.java
index ecd3f84..7a2a8a2 100644
--- a/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/WidgetOptionTest.java
+++ b/plugins/org.eclipse.osee.ats.core.test/src/org/eclipse/osee/ats/core/workdef/WidgetOptionTest.java
@@ -26,7 +26,7 @@
 
    @Test
    public void testValues() {
-      Assert.assertEquals(32, WidgetOption.values().length);
+      Assert.assertEquals(34, WidgetOption.values().length);
    }
 
    @Test
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboDam.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboDam.java
index de2eac4..95bd7a9 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboDam.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XComboDam.java
@@ -26,6 +26,7 @@
 import org.eclipse.osee.framework.skynet.core.validation.IOseeValidator;
 import org.eclipse.osee.framework.skynet.core.validation.OseeValidator;
 import org.eclipse.osee.framework.ui.skynet.internal.Activator;
+import org.eclipse.swt.widgets.Composite;
 
 /**
  * @author Donald G. Dunne
@@ -45,6 +46,25 @@
    }
 
    @Override
+   protected void createControls(Composite parent, int horizontalSpan) {
+      super.createControls(parent, horizontalSpan);
+      if (isAutoSave()) {
+         addXModifiedListener(new XModifiedListener() {
+
+            @Override
+            public void widgetModified(XWidget widget) {
+               if (artifact != null && artifact.isValid()) {
+                  saveToArtifact();
+                  if (artifact.isDirty()) {
+                     artifact.persist("XComboDam Auto-Save");
+                  }
+               }
+            }
+         });
+      }
+   }
+
+   @Override
    public AttributeTypeToken getAttributeType() {
       return attributeType;
    }
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XIntegerDam.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XIntegerDam.java
index be1a8a1..f9a09a6 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XIntegerDam.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XIntegerDam.java
@@ -21,6 +21,9 @@
 import org.eclipse.osee.framework.logging.OseeLog;
 import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
 import org.eclipse.osee.framework.ui.skynet.internal.Activator;
+import org.eclipse.swt.events.FocusAdapter;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.widgets.Composite;
 
 /**
  * @author Donald G. Dunne
@@ -36,6 +39,26 @@
    }
 
    @Override
+   protected void createControls(Composite parent, int horizontalSpan) {
+      super.createControls(parent, horizontalSpan);
+      if (isAutoSave()) {
+         getStyledText().addFocusListener(new FocusAdapter() {
+
+            @Override
+            public void focusLost(FocusEvent e) {
+               if (artifact != null && artifact.isValid()) {
+                  saveToArtifact();
+                  if (artifact.isDirty()) {
+                     artifact.persist("XIntegerDam Auto-Save");
+                  }
+               }
+            }
+
+         });
+      }
+   }
+
+   @Override
    public Artifact getArtifact() {
       return artifact;
    }
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOption.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOption.java
index 29dce90..a9520ce 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOption.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOption.java
@@ -22,6 +22,8 @@
 public enum XOption {
    NONE("", ""),
 
+   AUTO_SAVE("autoSave", "true"),
+   NOT_AUTO_SAVE("autoSave", "false"),
    REQUIRED("required", "true"),
    NOT_REQUIRED("required", "false"),
    REQUIRED_FOR_COMPLETION("requiredForCompletion", "true"),
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOptionHandler.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOptionHandler.java
index e45dd6c..f6a9582 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOptionHandler.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XOptionHandler.java
@@ -54,6 +54,12 @@
          case REQUIRED:
             xOptions.remove(XOption.NOT_REQUIRED);
             break;
+         case AUTO_SAVE:
+            xOptions.remove(XOption.NOT_AUTO_SAVE);
+            break;
+         case NOT_AUTO_SAVE:
+            xOptions.remove(XOption.AUTO_SAVE);
+            break;
          case NOT_REQUIRED_FOR_COMPLETION:
             xOptions.remove(XOption.REQUIRED_FOR_COMPLETION);
             break;
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XWidget.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XWidget.java
index 2a913c2..4eeb25f 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XWidget.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/XWidget.java
@@ -69,6 +69,7 @@
    private ArtifactTypeId artifactType;
    private String id;
    protected Object defaultValueObj;
+   private boolean autoSave = false;
 
    public XWidget(String label) {
       this.label = label;
@@ -454,4 +455,12 @@
    public void setDefaultValueObj(Object defaultValueObj) {
       this.defaultValueObj = defaultValueObj;
    }
+
+   public boolean isAutoSave() {
+      return autoSave;
+   }
+
+   public void setAutoSave(boolean autoSave) {
+      this.autoSave = autoSave;
+   }
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/SwtXWidgetRenderer.java b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/SwtXWidgetRenderer.java
index 8630f4f..7d60f37 100644
--- a/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/SwtXWidgetRenderer.java
+++ b/plugins/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/util/SwtXWidgetRenderer.java
@@ -129,6 +129,7 @@
       xWidget.setRequiredEntry(xWidgetLayoutData.isRequired());
       xWidget.setEditable(xWidgetLayoutData.getXOptionHandler().contains(XOption.EDITABLE) && isEditable);
       xWidget.setNoSelect(xWidgetLayoutData.getXOptionHandler().contains(XOption.NO_SELECT));
+      xWidget.setAutoSave(xWidgetLayoutData.getXOptionHandler().contains(XOption.AUTO_SAVE));
 
       xWidget.setArtifactType(xWidgetLayoutData.getArtifactType());
 
