diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer.java
index 6d3c33b..8b34a2d 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/env/NameEnvironmentAnswer.java
@@ -10,6 +10,8 @@
  *******************************************************************************/
 package org.eclipse.jdt.internal.compiler.env;
 
+import java.util.Arrays;
+
 import org.eclipse.jdt.internal.compiler.lookup.ModuleBinding;
 import org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding;
 
@@ -70,7 +72,7 @@
 			baseString = "ICompilationUnit " + this.compilationUnit.toString(); //$NON-NLS-1$
 		}
 		if (this.sourceTypes != null) {
-			baseString = this.sourceTypes.toString();
+			baseString = Arrays.toString(this.sourceTypes);
 		}
 		if (this.accessRestriction != null) {
 			baseString += " " + this.accessRestriction.toString(); //$NON-NLS-1$
@@ -78,6 +80,9 @@
 		if (this.externalAnnotationPath != null) {
 			baseString += " extPath=" + this.externalAnnotationPath.toString(); //$NON-NLS-1$
 		}
+		if (this.moduleName != null) {
+			baseString += " module=" + String.valueOf(this.moduleName); //$NON-NLS-1$
+		}
 		return baseString;
 	}
 	
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java
index 69022e0..eb40746 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java
@@ -537,8 +537,17 @@
 					// visible but foreign (when current is unnamed or auto):
 					for (char[] declaringModuleName : declaringModuleNames) {
 						ModuleBinding declaringModule = this.environment.root.getModule(declaringModuleName);
-						if (declaringModule != null && !declaringModule.isPackageLookupActive)
-							binding = SplitPackageBinding.combine(declaringModule.getDeclaredPackage(parentName, name), binding, this);
+						if (declaringModule != null && !declaringModule.isPackageLookupActive) {
+							PackageBinding declaredPackage = declaringModule.getDeclaredPackage(parentName, name);
+							if (declaredPackage != null) {
+								// don't add foreign package to 'parent' (below), but to its own parent:
+								if (declaredPackage.parent != null)
+									declaredPackage.parent.addPackage(declaredPackage, declaringModule, true);
+								parent = null;
+								//
+								binding = SplitPackageBinding.combine(declaredPackage, binding, this);
+							}
+						}
 					}
 				}
 			}
@@ -556,7 +565,7 @@
 		// remember
 		if (parentName.length == 0)
 			binding.environment.knownPackages.put(name, binding);
-		else
+		else if (parent != null)
 			binding = parent.addPackage(binding, this, false);
 		return addPackage(binding, false);
 	}
