diff --git a/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ExampleModelSaver.java b/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ExampleModelSaver.java
index d370298..104292f 100644
--- a/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ExampleModelSaver.java
+++ b/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ExampleModelSaver.java
@@ -11,6 +11,7 @@
  *******************************************************************************/
 package org.eclipse.dltk.javascript.developertools;
 
+import org.eclipse.dltk.javascript.typeinfo.TypeInfoUtil;
 import org.eclipse.dltk.javascript.typeinfo.model.Property;
 import org.eclipse.dltk.javascript.typeinfo.model.Type;
 import org.eclipse.dltk.javascript.typeinfo.model.TypeInfoModelFactory;
@@ -37,14 +38,14 @@
 		//
 		final Property id = typeInfoFactory.createProperty();
 		id.setName("id");
-		id.setType(numberType);
+		id.setType(TypeInfoUtil.ref(numberType));
 		exampleType.getMembers().add(id);
 		id.setAttribute("a", 1);
 		id.setAttribute("b", 2L);
 		//
 		final Property name = typeInfoFactory.createProperty();
 		name.setName("name");
-		name.setType(stringType);
+		name.setType(TypeInfoUtil.ref(stringType));
 		exampleType.getMembers().add(name);
 		//
 		resource.getContents().add((EObject) exampleType);
diff --git a/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ReferenceModelSaver.java b/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ReferenceModelSaver.java
index 5fcd2a1..f47cd75 100644
--- a/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ReferenceModelSaver.java
+++ b/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ReferenceModelSaver.java
@@ -29,6 +29,7 @@
 import org.eclipse.dltk.internal.javascript.typeinference.NativeStringReference;
 import org.eclipse.dltk.internal.javascript.typeinference.NativeXMLReference;
 import org.eclipse.dltk.internal.javascript.typeinference.StandardSelfCompletingReference;
+import org.eclipse.dltk.javascript.typeinfo.TypeInfoUtil;
 import org.eclipse.dltk.javascript.typeinfo.model.Member;
 import org.eclipse.dltk.javascript.typeinfo.model.Method;
 import org.eclipse.dltk.javascript.typeinfo.model.Parameter;
@@ -59,8 +60,8 @@
 		List<Type> typeList = new ArrayList<Type>(types.values());
 		Collections.sort(typeList, new Comparator<Type>() {
 			public int compare(Type o1, Type o2) {
-				return String.CASE_INSENSITIVE_ORDER.compare(o1.getName(), o2
-						.getName());
+				return String.CASE_INSENSITIVE_ORDER.compare(o1.getName(),
+						o2.getName());
 			}
 		});
 		for (Type type : typeList) {
@@ -75,12 +76,12 @@
 			final Map<Class<? extends StandardSelfCompletingReference>, Type> types) {
 		final Type type = types.get(typeRef.getClass());
 		Assert.isNotNull(type);
-		final List<IReference> children = new ArrayList<IReference>(typeRef
-				.getChilds(true));
+		final List<IReference> children = new ArrayList<IReference>(
+				typeRef.getChilds(true));
 		Collections.sort(children, new Comparator<IReference>() {
 			public int compare(IReference o1, IReference o2) {
-				return String.CASE_INSENSITIVE_ORDER.compare(o1.getName(), o2
-						.getName());
+				return String.CASE_INSENSITIVE_ORDER.compare(o1.getName(),
+						o2.getName());
 			}
 		});
 		for (IReference reference : children) {
@@ -109,7 +110,7 @@
 				member = TypeInfoModelFactory.eINSTANCE.createProperty();
 			}
 			member.setName(reference.getName());
-			member.setType(types.get(ref.getClass()));
+			member.setType(TypeInfoUtil.ref(types.get(ref.getClass())));
 			member.setDescription(ref.getProposalInfo());
 			type.getMembers().add(member);
 		}
