diff --git a/org.eclipse.emf.refactor.refactoring.henshin/src/org/eclipse/emf/refactor/refactoring/henshin/ui/NewRefactoringWizardHenshin.java b/org.eclipse.emf.refactor.refactoring.henshin/src/org/eclipse/emf/refactor/refactoring/henshin/ui/NewRefactoringWizardHenshin.java
index 7c20069..79d5901 100644
--- a/org.eclipse.emf.refactor.refactoring.henshin/src/org/eclipse/emf/refactor/refactoring/henshin/ui/NewRefactoringWizardHenshin.java
+++ b/org.eclipse.emf.refactor.refactoring.henshin/src/org/eclipse/emf/refactor/refactoring/henshin/ui/NewRefactoringWizardHenshin.java
@@ -72,6 +72,10 @@
 		this.className = contextType;
 	}
 
+	public String getNamespaceUri() {
+		return namespaceUri;
+	}
+
 	@Override
 	public void init(IWorkbench workbench, IStructuredSelection selection) {
 		initProjects();
@@ -122,7 +126,8 @@
 	@Override
 	public boolean canFinish() {
 		return (basicWizardPage.isPageComplete() 
-					&& transformationWizardPage.isPageComplete());
+					&& transformationWizardPage.isPageComplete()
+					&& parameterWizardPage.isPageComplete());
 	}
 
 	@Override
diff --git a/org.eclipse.emf.refactor.refactoring.henshin/src/org/eclipse/emf/refactor/refactoring/henshin/ui/ParameterWizardPage.java b/org.eclipse.emf.refactor.refactoring.henshin/src/org/eclipse/emf/refactor/refactoring/henshin/ui/ParameterWizardPage.java
index a69d15a..ee8e0a3 100644
--- a/org.eclipse.emf.refactor.refactoring.henshin/src/org/eclipse/emf/refactor/refactoring/henshin/ui/ParameterWizardPage.java
+++ b/org.eclipse.emf.refactor.refactoring.henshin/src/org/eclipse/emf/refactor/refactoring/henshin/ui/ParameterWizardPage.java
@@ -15,6 +15,8 @@
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.henshin.model.Module;
 import org.eclipse.emf.henshin.model.Parameter;
 import org.eclipse.emf.henshin.model.Unit;
@@ -251,8 +253,22 @@
 	private void checkIsPageComplete() {
 		setTransformationSystem();
 		if (this.module == null){
-			setMessage("Cannot load henshin transformation system.", 
-															SWT.ERROR);
+			setMessage("Cannot load henshin module.", SWT.ERROR);
+			setPageComplete(false);
+			return;
+		}
+		EList<EPackage> imports = this.module.getImports();
+		String nsUri = ((NewRefactoringWizardHenshin) getWizard()).getNamespaceUri();
+		boolean hasImport = false;
+		for (EPackage ePackage : imports) {
+			if (ePackage.getNsURI().equals(nsUri)) {
+				hasImport = true;
+				break;
+			}
+		}
+		if (! hasImport) {
+			setMessage("The henshin module does not import model '" 
+											+ nsUri + "'.", SWT.ERROR);
 			setPageComplete(false);
 			return;
 		}
