diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/DefaultFieldValueJoiner.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/DefaultFieldValueJoiner.java
index bd2fdb3..3a14982 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/DefaultFieldValueJoiner.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/DefaultFieldValueJoiner.java
@@ -330,6 +330,7 @@
       throws ExecutionException {
     // To simplify the analysis, we currently bail out for non-final classes.
     // TODO(b/296030319): Handle non-final classes.
+    Set<DexType> serviceImplementations = appView.appServices().computeAllServiceImplementations();
     MapUtils.removeIf(
         nonFinalInstanceFields,
         (holderType, fields) -> {
@@ -337,7 +338,8 @@
           DexProgramClass holder = fields.iterator().next().getHolder();
           // If the class is kept it could be instantiated directly, in which case all default field
           // values could be live.
-          if (appView.getKeepInfo(holder).isPinned(appView.options())) {
+          if (appView.getKeepInfo(holder).isPinned(appView.options())
+              || serviceImplementations.contains(holder.getType())) {
             fields.forEach(liveDefaultValueConsumer);
             return true;
           }
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/membervaluepropagation/DefaultFieldValueJoinerWithServiceLoaderTest.java b/src/test/java/com/android/tools/r8/ir/optimize/membervaluepropagation/DefaultFieldValueJoinerWithServiceLoaderTest.java
index 62165a4..1efc4cb 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/membervaluepropagation/DefaultFieldValueJoinerWithServiceLoaderTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/membervaluepropagation/DefaultFieldValueJoinerWithServiceLoaderTest.java
@@ -45,8 +45,7 @@
                 Origin.unknown()))
         .setMinApi(parameters)
         .run(parameters.getRuntime(), Main.class)
-        // TODO(b/389737060): Should be 0, 1, 0, 2.
-        .assertSuccessWithOutputLines("1", "1", "2", "2");
+        .assertSuccessWithOutputLines("0", "1", "0", "2");
   }
 
   public interface A {
