diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/ActivityPropertiesAdapter.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/ActivityPropertiesAdapter.java
index 6b7497c..f2e0b43 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/ActivityPropertiesAdapter.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/ActivityPropertiesAdapter.java
@@ -30,8 +30,8 @@
 	 */
 	public ActivityPropertiesAdapter(AdapterFactory adapterFactory, T object) {
 		super(adapterFactory, object);
-    	setProperty(Bpmn2Package.ACTIVITY__LOOP_CHARACTERISTICS, ExtendedPropertiesAdapter.UI_CAN_CREATE_NEW, Boolean.FALSE);
-    	setProperty(Bpmn2Package.ACTIVITY__LOOP_CHARACTERISTICS, ExtendedPropertiesAdapter.UI_CAN_EDIT, Boolean.FALSE);
+    	setProperty(Bpmn2Package.ACTIVITY__LOOP_CHARACTERISTICS, UI_CAN_CREATE_NEW, Boolean.FALSE);
+    	setProperty(Bpmn2Package.ACTIVITY__LOOP_CHARACTERISTICS, UI_CAN_EDIT, Boolean.FALSE);
 	}
 
 }
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/ScriptTaskPropertiesAdapter.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/ScriptTaskPropertiesAdapter.java
index 0b941dc..e28f536 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/ScriptTaskPropertiesAdapter.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/ScriptTaskPropertiesAdapter.java
@@ -13,8 +13,12 @@
 
 package org.eclipse.bpmn2.modeler.ui.adapters.properties;
 
+import org.eclipse.bpmn2.Bpmn2Package;
+import org.eclipse.bpmn2.FormalExpression;
 import org.eclipse.bpmn2.ScriptTask;
+import org.eclipse.bpmn2.modeler.core.adapters.FeatureDescriptor;
 import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.ecore.EStructuralFeature;
 
 /**
  * @author Bob Brodt
@@ -28,6 +32,33 @@
 	 */
 	public ScriptTaskPropertiesAdapter(AdapterFactory adapterFactory, ScriptTask object) {
 		super(adapterFactory, object);
+
+
+    	EStructuralFeature ref = Bpmn2Package.eINSTANCE.getScriptTask_Script();
+    	setFeatureDescriptor(ref,
+			new FeatureDescriptor<ScriptTask>(adapterFactory,object,ref) {
+    		
+	    		@Override
+	    		public String getDisplayName(Object context) {
+	    			ScriptTask task = adopt(context);
+					if (task.getScript()==null)
+						return "";
+					return task.getScript();
+	    		}
+    	});
+    	
+    	ref = Bpmn2Package.eINSTANCE.getScriptTask_ScriptFormat();
+    	setFeatureDescriptor(ref,
+			new FeatureDescriptor<ScriptTask>(adapterFactory,object,ref) {
+    		
+	    		@Override
+	    		public String getDisplayName(Object context) {
+	    			ScriptTask task = adopt(context);
+					if (task.getScriptFormat()==null)
+						return "text/xml"; // TODO: is there a default mime-type?
+					return task.getScriptFormat();
+	    		}
+    	});
 	}
 
 }
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/TaskPropertiesAdapter.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/TaskPropertiesAdapter.java
index 9c3d6c0..c7d83f9 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/TaskPropertiesAdapter.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/TaskPropertiesAdapter.java
@@ -30,8 +30,8 @@
 	 */
 	public TaskPropertiesAdapter(AdapterFactory adapterFactory, T object) {
 		super(adapterFactory, object);
-    	setProperty(Bpmn2Package.INTERACTION_NODE__INCOMING_CONVERSATION_LINKS, ExtendedPropertiesAdapter.UI_CAN_CREATE_NEW, Boolean.FALSE);
-    	setProperty(Bpmn2Package.INTERACTION_NODE__OUTGOING_CONVERSATION_LINKS, ExtendedPropertiesAdapter.UI_CAN_CREATE_NEW, Boolean.FALSE);
+    	setProperty(Bpmn2Package.INTERACTION_NODE__INCOMING_CONVERSATION_LINKS, UI_CAN_CREATE_NEW, Boolean.FALSE);
+    	setProperty(Bpmn2Package.INTERACTION_NODE__OUTGOING_CONVERSATION_LINKS, UI_CAN_CREATE_NEW, Boolean.FALSE);
 	}
 
 }
