diff --git a/java/dexpreopt.go b/java/dexpreopt.go
index 1192d92..479dec6 100644
--- a/java/dexpreopt.go
+++ b/java/dexpreopt.go
@@ -101,6 +101,10 @@
 
 	global := dexpreoptGlobalConfig(ctx)
 	bootImage := defaultBootImageConfig(ctx)
+	defaultBootImage := bootImage
+	if global.UseApexImage {
+		bootImage = apexBootImageConfig(ctx)
+	}
 
 	var archs []android.ArchType
 	for _, a := range ctx.MultiTargets() {
@@ -170,8 +174,11 @@
 		DexPreoptImagesDeps:     imagesDeps,
 		DexPreoptImageLocations: bootImage.imageLocations,
 
-		PreoptBootClassPathDexFiles:     bootImage.dexPathsDeps.Paths(),
-		PreoptBootClassPathDexLocations: bootImage.dexLocationsDeps,
+		// We use the dex paths and dex locations of the default boot image, as it
+		// contains the full dexpreopt boot classpath. Other images may just contain a subset of
+		// the dexpreopt boot classpath.
+		PreoptBootClassPathDexFiles:     defaultBootImage.dexPathsDeps.Paths(),
+		PreoptBootClassPathDexLocations: defaultBootImage.dexLocationsDeps,
 
 		PreoptExtractedApk: false,
 
diff --git a/java/dexpreopt_bootjars.go b/java/dexpreopt_bootjars.go
index 5714531..1d363c9 100644
--- a/java/dexpreopt_bootjars.go
+++ b/java/dexpreopt_bootjars.go
@@ -220,19 +220,16 @@
 		return
 	}
 
-	// Default boot image is either the framework one, or the JIT-zygote one.
-	// The boot image that is created first is used to get a unique profile rule for all images.
-	if global.GenerateApexImage {
-		d.defaultBootImage = buildBootImage(ctx, apexBootImageConfig(ctx))
-		d.otherImages = append(d.otherImages, buildBootImage(ctx, frameworkBootImageConfig(ctx)))
-	} else {
-		d.defaultBootImage = buildBootImage(ctx, frameworkBootImageConfig(ctx))
-	}
-
-	// Create the ART boot image.
+	// Always create the default boot image first, to get a unique profile rule for all images.
+	d.defaultBootImage = buildBootImage(ctx, defaultBootImageConfig(ctx))
 	if !skipDexpreoptArtBootJars(ctx) {
+		// Create boot image for the ART apex (build artifacts are accessed via the global boot image config).
 		d.otherImages = append(d.otherImages, buildBootImage(ctx, artBootImageConfig(ctx)))
 	}
+	if global.GenerateApexImage {
+		// Create boot images for the JIT-zygote experiment.
+		d.otherImages = append(d.otherImages, buildBootImage(ctx, apexBootImageConfig(ctx)))
+	}
 
 	dumpOatRules(ctx, d.defaultBootImage)
 }
diff --git a/java/dexpreopt_config.go b/java/dexpreopt_config.go
index d578b67..91e0dfb 100644
--- a/java/dexpreopt_config.go
+++ b/java/dexpreopt_config.go
@@ -234,7 +234,7 @@
 	return *genBootImageConfigs(ctx)[artBootImageName]
 }
 
-func frameworkBootImageConfig(ctx android.PathContext) bootImageConfig {
+func defaultBootImageConfig(ctx android.PathContext) bootImageConfig {
 	return *genBootImageConfigs(ctx)[frameworkBootImageName]
 }
 
@@ -242,14 +242,6 @@
 	return *genBootImageConfigs(ctx)[apexBootImageName]
 }
 
-func defaultBootImageConfig(ctx android.PathContext) bootImageConfig {
-	if dexpreoptGlobalConfig(ctx).UseApexImage {
-		return apexBootImageConfig(ctx)
-	} else {
-		return frameworkBootImageConfig(ctx)
-	}
-}
-
 func defaultBootclasspath(ctx android.PathContext) []string {
 	return ctx.Config().OnceStringSlice(defaultBootclasspathKey, func() []string {
 		global := dexpreoptGlobalConfig(ctx)
