diff --git a/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/expression/debug/ExpressionElementAdapter.java b/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/expression/debug/ExpressionElementAdapter.java
index 5cade4f..eee72a9 100644
--- a/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/expression/debug/ExpressionElementAdapter.java
+++ b/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/expression/debug/ExpressionElementAdapter.java
@@ -31,6 +31,8 @@
 import org.eclipse.internal.xtend.expression.ast.Literal;
 import org.eclipse.internal.xtend.expression.ast.OperationCall;
 import org.eclipse.internal.xtend.type.baseimpl.PolymorphicResolver;
+import org.eclipse.internal.xtend.xtend.ast.CreateExtensionStatement;
+import org.eclipse.internal.xtend.xtend.ast.ExpressionExtensionStatement;
 import org.eclipse.xtend.expression.ExecutionContext;
 import org.eclipse.xtend.expression.Variable;
 import org.eclipse.xtend.typesystem.AbstractTypeImpl;
@@ -43,8 +45,8 @@
  * 
  * @author Bernd Kolb
  * @author Clemens Kadura (zAJKa)
- * @author Karsten Thoms - maintenance
- * @author Aykut Kilic (itemis) - Bug#465802,480646
+ * @author Karsten Thoms (itemis) - maintenance
+ * @author Aykut Kilic (itemis) - Bug#465802,480646,480645
  */
 public class ExpressionElementAdapter implements ElementAdapter {
 
@@ -177,6 +179,15 @@
 
 			return result;
 		}
+		if(element instanceof CreateExtensionStatement || element instanceof ExpressionExtensionStatement) {
+		  final Type type = context.getType(element);
+	      List<NameValuePair> props = getAllPropertiesFor(type, element);
+	      for (Entry<String, Variable> entry : context.getVisibleVariables().entrySet()) {
+	        Variable var = entry.getValue();
+	        props.add(new NameValuePair(entry.getKey(), var.getValue()));
+	      }
+	      return props;
+		}
 		if (element instanceof FeatureCall)
 			return evaluateFeatureCall((FeatureCall) element);
 		if (element instanceof Collection<?>) {
diff --git a/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/ast/CreateExtensionStatement.java b/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/ast/CreateExtensionStatement.java
index 70efff4..bb6f8b4 100644
--- a/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/ast/CreateExtensionStatement.java
+++ b/plugins/org.eclipse.xtend/src/org/eclipse/internal/xtend/xtend/ast/CreateExtensionStatement.java
@@ -7,6 +7,8 @@
  *
  * Contributors:
  *     committers of openArchitectureWare - initial API and implementation
+ * @author Karsten Thoms (itemis) - maintenance
+ * @author Aykut Kilic (itemis) - Bug#480645
  *******************************************************************************/
 package org.eclipse.internal.xtend.xtend.ast;
 
@@ -92,7 +94,9 @@
 			final Object object = parameters[i];
 			_ctx = _ctx.cloneWithVariable(new Variable(getParameterNames().get(i), object));
 		}
+		_ctx.preTask(this);
 		expression.evaluate(_ctx);
+		_ctx.postTask(this);
 		return inst;
 	}
 
