diff --git a/org.eclipse.osbp.xtext.dialogdsl/src/org/eclipse/osbp/xtext/dialogdsl/jvmmodel/DialogDslMobileViewCreator.xtend b/org.eclipse.osbp.xtext.dialogdsl/src/org/eclipse/osbp/xtext/dialogdsl/jvmmodel/DialogDslMobileViewCreator.xtend
index 8bd381c..84f3c7a 100644
--- a/org.eclipse.osbp.xtext.dialogdsl/src/org/eclipse/osbp/xtext/dialogdsl/jvmmodel/DialogDslMobileViewCreator.xtend
+++ b/org.eclipse.osbp.xtext.dialogdsl/src/org/eclipse/osbp/xtext/dialogdsl/jvmmodel/DialogDslMobileViewCreator.xtend
@@ -241,7 +241,7 @@
 						'''
 							try {
 								// access the navigation bar action and register a listener at it
-								if (observer === null) {
+								if (observer == null) {
 									observer = new SaveActionObserver();
 								}
 								«FOR saveId : actionMap.get(ACTION_SAVE)»registerHandler("«saveId»", observer);
@@ -266,9 +266,10 @@
 				annotations += _annotationTypesBuilder.annotationRef(Override)
 				parameters += uiMobileView.toParameter("parent", _typeReferenceBuilder.typeRef(ComponentContainer))
 				parameters += uiMobileView.toParameter("fragment", _typeReferenceBuilder.typeRef(String))
+				parameters += uiMobileView.toParameter("user", _typeReferenceBuilder.typeRef(IUser))
 				body = [
 					append(
-						'''	super.initialize(parent, fragment);
+						'''	super.initialize(parent, fragment, user);
 						«IF (actionMap.get(ACTION_SAVE) !== null)»
 							registerSaveHandler();
 						«ENDIF»''')]
diff --git a/org.eclipse.osbp.xtext.dialogdsl/xtend-gen/org/eclipse/osbp/xtext/dialogdsl/jvmmodel/DialogDslMobileViewCreator.java b/org.eclipse.osbp.xtext.dialogdsl/xtend-gen/org/eclipse/osbp/xtext/dialogdsl/jvmmodel/DialogDslMobileViewCreator.java
index c74cffb..a5acdf5 100644
--- a/org.eclipse.osbp.xtext.dialogdsl/xtend-gen/org/eclipse/osbp/xtext/dialogdsl/jvmmodel/DialogDslMobileViewCreator.java
+++ b/org.eclipse.osbp.xtext.dialogdsl/xtend-gen/org/eclipse/osbp/xtext/dialogdsl/jvmmodel/DialogDslMobileViewCreator.java
@@ -329,7 +329,7 @@
         _builder.append("// access the navigation bar action and register a listener at it");
         _builder.newLine();
         _builder.append("\t");
-        _builder.append("if (observer === null) {");
+        _builder.append("if (observer == null) {");
         _builder.newLine();
         _builder.append("\t\t");
         _builder.append("observer = new SaveActionObserver();");
@@ -379,10 +379,13 @@
       EList<JvmFormalParameter> _parameters_1 = it.getParameters();
       JvmFormalParameter _parameter_1 = this._jvmTypesBuilder.toParameter(uiMobileView, "fragment", this._typeReferenceBuilder.typeRef(String.class));
       this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter_1);
+      EList<JvmFormalParameter> _parameters_2 = it.getParameters();
+      JvmFormalParameter _parameter_2 = this._jvmTypesBuilder.toParameter(uiMobileView, "user", this._typeReferenceBuilder.typeRef(IUser.class));
+      this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_2, _parameter_2);
       final Procedure1<ITreeAppendable> _function_1 = (ITreeAppendable it_1) -> {
         StringConcatenation _builder = new StringConcatenation();
         _builder.append("\t");
-        _builder.append("super.initialize(parent, fragment);");
+        _builder.append("super.initialize(parent, fragment, user);");
         _builder.newLine();
         {
           List<String> _get = this.actionMap.get(this._dialogConstants.ACTION_SAVE);
