diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.abase.ui/src-gen/org/eclipse/amp/amf/abase/ui/AbstractABaseUiModule.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.abase.ui/src-gen/org/eclipse/amp/amf/abase/ui/AbstractABaseUiModule.java
index f09b7a9..b6d921c 100644
--- a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.abase.ui/src-gen/org/eclipse/amp/amf/abase/ui/AbstractABaseUiModule.java
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.abase.ui/src-gen/org/eclipse/amp/amf/abase/ui/AbstractABaseUiModule.java
@@ -39,9 +39,9 @@
 	}
 
 	// contributed by org.eclipse.xtext.generator.exporting.SimpleNamesFragment
-	public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
-		return org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator.Null.class;
-	}
+//	public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
+//		return org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator.Null.class;
+//	}
 
 	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
 	public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.ide/META-INF/MANIFEST.MF b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.ide/META-INF/MANIFEST.MF
index edee42c..1ad1249 100644
--- a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.ide/META-INF/MANIFEST.MF
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.ide/META-INF/MANIFEST.MF
@@ -16,7 +16,8 @@
  org.eclipse.xtend.typesystem.emf,
  org.eclipse.amp.amf.gen;bundle-version="0.9.0",
  org.eclipse.amp.amf.ide;visibility:=reexport,
- org.eclipse.xtext.generator
+ org.eclipse.xtext.generator,
+ org.eclipse.xtext.util
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
 Bundle-ClassPath: .
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.ide/src/org/eclipse/amp/amf/gen/ide/LogWorkflow.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.ide/src/org/eclipse/amp/amf/gen/ide/LogWorkflow.java
index ca95628..f68f92f 100644
--- a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.ide/src/org/eclipse/amp/amf/gen/ide/LogWorkflow.java
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.gen.ide/src/org/eclipse/amp/amf/gen/ide/LogWorkflow.java
@@ -36,11 +36,11 @@
     private static final long serialVersionUID = 9181448189753075665L;
 
     // TODO this will all have to be reworked if parallel generation is supported..class loader issues are very involved
-    static List<MWEDiagnostic> errors;
+    static List<MWEDiagnostic> errors = new ArrayList<MWEDiagnostic>();
 
-    static List<MWEDiagnostic> warnings;
+    static List<MWEDiagnostic> warnings = new ArrayList<MWEDiagnostic>();
 
-    static List<MWEDiagnostic> fatals;
+    static List<MWEDiagnostic> fatals = new ArrayList<MWEDiagnostic>();
 
     static StringBuffer info;
 
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.parameters.ui/src-gen/org/eclipse/amp/amf/parameters/ui/AbstractAParUiModule.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.parameters.ui/src-gen/org/eclipse/amp/amf/parameters/ui/AbstractAParUiModule.java
index d3c55e9..476e9df 100644
--- a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.parameters.ui/src-gen/org/eclipse/amp/amf/parameters/ui/AbstractAParUiModule.java
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.parameters.ui/src-gen/org/eclipse/amp/amf/parameters/ui/AbstractAParUiModule.java
@@ -39,9 +39,9 @@
 	}
 
 	// contributed by org.eclipse.xtext.generator.exporting.SimpleNamesFragment
-	public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
-		return org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator.Null.class;
-	}
+//	public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
+//		return org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator.Null.class;
+//	}
 
 	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
 	public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
diff --git a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing.ui/src-gen/org/eclipse/amp/amf/testing/ui/AbstractATestUiModule.java b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing.ui/src-gen/org/eclipse/amp/amf/testing/ui/AbstractATestUiModule.java
index cdcead4..400fdf7 100644
--- a/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing.ui/src-gen/org/eclipse/amp/amf/testing/ui/AbstractATestUiModule.java
+++ b/org.eclipse.amp.amf/plugins/org.eclipse.amp.amf.testing.ui/src-gen/org/eclipse/amp/amf/testing/ui/AbstractATestUiModule.java
@@ -39,9 +39,9 @@
 	}
 
 	// contributed by org.eclipse.xtext.generator.exporting.SimpleNamesFragment
-	public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
-		return org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator.Null.class;
-	}
+//	public Class<? extends org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator> bindIDependentElementsCalculator() {
+//		return org.eclipse.xtext.ui.refactoring.IDependentElementsCalculator.Null.class;
+//	}
 
 	// contributed by org.eclipse.xtext.generator.builder.BuilderIntegrationFragment
 	public void configureIResourceDescriptionsBuilderScope(com.google.inject.Binder binder) {
