diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/ProcessAssemblies.cs b/src/Xamarin.Android.Build.Tasks/Tasks/ProcessAssemblies.cs
index 59b1fcb5ea3..a5b7cfcf36d 100644
--- a/src/Xamarin.Android.Build.Tasks/Tasks/ProcessAssemblies.cs
+++ b/src/Xamarin.Android.Build.Tasks/Tasks/ProcessAssemblies.cs
@@ -65,16 +65,20 @@ public override bool RunTask ()
 
 			// Set ShrunkAssemblies for _RemoveRegisterAttribute and 
 			// This should match the Condition on the _RemoveRegisterAttribute target
-			if (PublishTrimmed && !AndroidIncludeDebugSymbols) {
-				var shrunkAssemblies = new List (OutputAssemblies.Length);
-				foreach (var assembly in OutputAssemblies) {
-					var dir = Path.GetDirectoryName (assembly.ItemSpec);
-					var file = Path.GetFileName (assembly.ItemSpec);
-					shrunkAssemblies.Add (new TaskItem (assembly) {
-						ItemSpec = Path.Combine (dir, "shrunk", file),
-					});
+			if (PublishTrimmed) {
+				if (!AndroidIncludeDebugSymbols) {
+					var shrunkAssemblies = new List (OutputAssemblies.Length);
+					foreach (var assembly in OutputAssemblies) {
+						var dir = Path.GetDirectoryName (assembly.ItemSpec);
+						var file = Path.GetFileName (assembly.ItemSpec);
+						shrunkAssemblies.Add (new TaskItem (assembly) {
+							ItemSpec = Path.Combine (dir, "shrunk", file),
+						});
+					}
+					ShrunkAssemblies = shrunkAssemblies.ToArray ();
+				} else {
+					ShrunkAssemblies = OutputAssemblies;
 				}
-				ShrunkAssemblies = shrunkAssemblies.ToArray ();
 			}
 
 			if (InputJavaLibraries != null) {
diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/PackagingTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/PackagingTest.cs
index 170261f1a59..f9394a98ca1 100644
--- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/PackagingTest.cs
+++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/PackagingTest.cs
@@ -56,6 +56,31 @@ public void CheckR8InfoMessagesToNotBreakTheBuild ()
 			}
 		}
 
+		[Test]
+		public void CheckDebugModeWithTrimming ()
+		{
+			bool usesAssemblyStores = false;
+			var proj = new XamarinAndroidApplicationProject {
+				ProjectName = "MyApp",
+				IsRelease = false,
+				EmbedAssembliesIntoApk = true,
+			};
+			proj.SetProperty ("PublishTrimmed", "true");
+			proj.SetProperty ("AndroidUseAssemblyStore", usesAssemblyStores.ToString ());
+
+			using var b = CreateApkBuilder ();
+			Assert.IsTrue (b.Build (proj), "build should have succeeded.");
+
+			var apk = Path.Combine (Root, b.ProjectDirectory,
+				proj.OutputPath, $"{proj.PackageName}-Signed.apk");
+			var helper = new ArchiveAssemblyHelper (apk, usesAssemblyStores);
+			helper.Contains (["Mono.Android.dll", $"{proj.ProjectName}.dll"], out _, out var missingFiles, out _, [AndroidTargetArch.Arm64, AndroidTargetArch.X86_64]);
+
+			Assert.IsTrue (missingFiles == null || missingFiles.Count == 0,
+				string.Format ("The following Expected files are missing. {0}",
+				string.Join (Environment.NewLine, missingFiles)));
+		}
+
 		[Test]
 		[NonParallelizable] // Commonly fails NuGet restore
 		public void CheckIncludedAssemblies ([Values (false, true)] bool usesAssemblyStores)