diff --git a/plugins/org.eclipse.dltk.javascript.jdt.integration/src/org/eclipse/dltk/javascript/jdt/integration/JavaElementReference.java b/plugins/org.eclipse.dltk.javascript.jdt.integration/src/org/eclipse/dltk/javascript/jdt/integration/JavaElementReference.java
index 8b46ff6..2b37b47 100644
--- a/plugins/org.eclipse.dltk.javascript.jdt.integration/src/org/eclipse/dltk/javascript/jdt/integration/JavaElementReference.java
+++ b/plugins/org.eclipse.dltk.javascript.jdt.integration/src/org/eclipse/dltk/javascript/jdt/integration/JavaElementReference.java
@@ -16,14 +16,14 @@
 import org.eclipse.dltk.internal.core.ModelElement;
 import org.eclipse.dltk.internal.javascript.typeinference.FakeField;
 import org.eclipse.dltk.internal.javascript.typeinference.IReference;
-import org.eclipse.dltk.internal.javascript.typeinference.UncknownReference;
+import org.eclipse.dltk.internal.javascript.typeinference.UnknownReference;
 import org.eclipse.jdt.core.IJavaElement;
 import org.eclipse.jdt.core.IMember;
 import org.eclipse.jdt.core.IMethod;
 import org.eclipse.jdt.core.ISourceRange;
 import org.eclipse.jdt.core.JavaModelException;
 
-public class JavaElementReference extends UncknownReference{
+public class JavaElementReference extends UnknownReference{
 
 	public Set getChilds(boolean resolveLocals) {
 		if (element instanceof IMethod){
diff --git a/plugins/org.eclipse.dltk.javascript.jdt.integration/src/org/eclipse/dltk/javascript/jdt/integration/JavaProposalReference.java b/plugins/org.eclipse.dltk.javascript.jdt.integration/src/org/eclipse/dltk/javascript/jdt/integration/JavaProposalReference.java
index 96d5788..1350095 100644
--- a/plugins/org.eclipse.dltk.javascript.jdt.integration/src/org/eclipse/dltk/javascript/jdt/integration/JavaProposalReference.java
+++ b/plugins/org.eclipse.dltk.javascript.jdt.integration/src/org/eclipse/dltk/javascript/jdt/integration/JavaProposalReference.java
@@ -18,7 +18,7 @@
 import org.eclipse.dltk.internal.javascript.reference.resolvers.SelfCompletingReference;
 import org.eclipse.dltk.internal.javascript.typeinference.FakeField;
 import org.eclipse.dltk.internal.javascript.typeinference.IReference;
-import org.eclipse.dltk.internal.javascript.typeinference.UncknownReference;
+import org.eclipse.dltk.internal.javascript.typeinference.UnknownReference;
 import org.eclipse.jdt.core.CompletionProposal;
 import org.eclipse.jdt.core.CompletionRequestor;
 import org.eclipse.jdt.core.Flags;
@@ -32,7 +32,7 @@
 import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.jdt.core.eval.IEvaluationContext;
 
-public class JavaProposalReference extends UncknownReference implements SelfCompletingReference {
+public class JavaProposalReference extends UnknownReference implements SelfCompletingReference {
 
 	private IJavaProject project;
 	private CompletionProposal proposal;
diff --git a/plugins/org.eclipse.dltk.javascript.jdt.integration/src/org/eclipse/dltk/javascript/jdt/integration/JdtReferenceResolver.java b/plugins/org.eclipse.dltk.javascript.jdt.integration/src/org/eclipse/dltk/javascript/jdt/integration/JdtReferenceResolver.java
index e2b5e4e..b65c164 100644
--- a/plugins/org.eclipse.dltk.javascript.jdt.integration/src/org/eclipse/dltk/javascript/jdt/integration/JdtReferenceResolver.java
+++ b/plugins/org.eclipse.dltk.javascript.jdt.integration/src/org/eclipse/dltk/javascript/jdt/integration/JdtReferenceResolver.java
@@ -27,7 +27,7 @@
 import org.eclipse.dltk.internal.javascript.typeinference.IClassReference;
 import org.eclipse.dltk.internal.javascript.typeinference.IReference;
 import org.eclipse.dltk.internal.javascript.typeinference.NewReference;
-import org.eclipse.dltk.internal.javascript.typeinference.UncknownReference;
+import org.eclipse.dltk.internal.javascript.typeinference.UnknownReference;
 import org.eclipse.jdt.core.CompletionProposal;
 import org.eclipse.jdt.core.CompletionRequestor;
 import org.eclipse.jdt.core.IJavaElement;
@@ -47,7 +47,7 @@
 public class JdtReferenceResolver implements IExecutableExtension,
 		IReferenceResolver {
 
-	private static final class ClassRef extends UncknownReference implements
+	private static final class ClassRef extends UnknownReference implements
 			IClassReference {
 		private ClassRef(String paramOrVarName, boolean childIsh) {
 			super(paramOrVarName, childIsh);
@@ -120,7 +120,7 @@
 													IMethod method = ts[a];
 													if (method.getElementName()
 															.startsWith(string)) {
-														UncknownReference r = new UncknownReference(
+														UnknownReference r = new UnknownReference(
 																method
 																		.getElementName()
 																		.substring(
@@ -134,7 +134,7 @@
 															.getElementName()
 															.startsWith(
 																	stringget)) {
-														IReference r = new UncknownReference(
+														IReference r = new UnknownReference(
 																method
 																		.getElementName()
 																		.substring(
@@ -146,7 +146,7 @@
 															.getElementName()
 															.startsWith(
 																	stringset)) {
-														IReference r = new UncknownReference(
+														IReference r = new UnknownReference(
 																method
 																		.getElementName()
 																		.substring(
