[137613] JS NPE
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelSynchHelper.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelSynchHelper.java
index 679d95c..95323f4 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelSynchHelper.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelSynchHelper.java
@@ -214,6 +214,9 @@
 					try {
 						currentWidget = (Widget) propertyToWidgetHash.get(propertyName);
 						if (currentWidget != null && currentWidget != currentWidgetFromEvent) {
+							//We must hold a copy in a temp variable because setting the widget value
+							//may trigger an event that will cause this method to be called again.
+							Widget widget = currentWidget;
 							try {
 								if (currentWidget instanceof Text)
 									setWidgetValue(propertyName, flag, (Text) currentWidget);
@@ -232,7 +235,8 @@
 							} finally {
 								ignoreModifyEvent = false;
 							}
-							setEnablement((Control) currentWidget, dataModel.isPropertyEnabled(propertyName));
+							//Pass the copy of the currentWidget
+							setEnablement((Control) widget, dataModel.isPropertyEnabled(propertyName));
 						}
 					} finally {
 						currentWidget = null;