diff --git a/org.eclipse.jdt.core/buildnotes_jdt-core.html b/org.eclipse.jdt.core/buildnotes_jdt-core.html
index 42ecb85..295348b 100644
--- a/org.eclipse.jdt.core/buildnotes_jdt-core.html
+++ b/org.eclipse.jdt.core/buildnotes_jdt-core.html
@@ -46,7 +46,9 @@
 </ul>
 
 <h3>Problem Reports Fixed</h3>
-<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48965">48965</a>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48706">48706</a>
+NPE in move refactoring 
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48965">48965</a>
 Javadoc problem preference settings: Use 'include' instead of 'ignore'
 
 <a name="v_394"></a>
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/hierarchy/TypeHierarchy.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/hierarchy/TypeHierarchy.java
index ae24e53..cefc9b9 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/hierarchy/TypeHierarchy.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/hierarchy/TypeHierarchy.java
@@ -722,7 +722,8 @@
  * Whether fine-grained deltas where collected and affects this hierarchy.
  */
 public boolean hasFineGrainChanges() {
-	return this.changeCollector != null && this.changeCollector.needsRefresh();
+    ChangeCollector collector = this.changeCollector;
+	return collector != null && collector.needsRefresh();
 }
 /**
  * Returns whether one of the subtypes in this hierarchy has the given simple name
@@ -963,7 +964,10 @@
 protected boolean isAffectedByOpenable(IJavaElementDelta delta, IJavaElement element) {
 	if (element instanceof CompilationUnit) {
 		CompilationUnit cu = (CompilationUnit)element;
-		ChangeCollector collector = this.changeCollector == null ? new ChangeCollector(this) : this.changeCollector;
+		ChangeCollector collector = this.changeCollector;
+		if (collector == null) {
+		    collector = new ChangeCollector(this);
+		}
 		try {
 			collector.addChange(cu, delta);
 		} catch (JavaModelException e) {
@@ -1467,10 +1471,6 @@
 			buffer.append("Sub types of root classes:\n"); //$NON-NLS-1$
 			IType[] roots= getRootClasses();
 			for (int i= 0; i < roots.length; i++) {
-				buffer.append("  "); //$NON-NLS-1$
-				JavaElement element = (JavaElement)roots[i];
-				buffer.append(element.toStringWithAncestors());
-				buffer.append('\n');
 				toString(buffer, roots[i], 1, false);
 			}
 		}
