diff --git a/src/main/java/com/android/tools/r8/ir/optimize/InliningConstraints.java b/src/main/java/com/android/tools/r8/ir/optimize/InliningConstraints.java
index efec070..796d5d6 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/InliningConstraints.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/InliningConstraints.java
@@ -274,6 +274,21 @@
       ConstraintWithTarget fieldConstraintWithTarget =
           ConstraintWithTarget.deriveConstraint(
               invocationContext, fieldHolder, target.accessFlags, appView);
+
+      // If the field has not been member-rebound, then we also need to make sure that the
+      // `invocationContext` has access to the definition of the field.
+      //
+      // See, for example, InlineNonReboundFieldTest (b/128604123).
+      if (field.holder != target.field.holder) {
+        DexType actualFieldHolder = graphLense.lookupType(target.field.holder);
+        fieldConstraintWithTarget =
+            ConstraintWithTarget.meet(
+                fieldConstraintWithTarget,
+                ConstraintWithTarget.deriveConstraint(
+                    invocationContext, actualFieldHolder, target.accessFlags, appView),
+                appView);
+      }
+
       ConstraintWithTarget classConstraintWithTarget =
           ConstraintWithTarget.deriveConstraint(
               invocationContext, fieldHolder, fieldClass.accessFlags, appView);
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/inliner/InlineNonReboundFieldTest.java b/src/test/java/com/android/tools/r8/ir/optimize/inliner/InlineNonReboundFieldTest.java
index 9c16de6..fffb84a 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/inliner/InlineNonReboundFieldTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/inliner/InlineNonReboundFieldTest.java
@@ -4,11 +4,10 @@
 
 package com.android.tools.r8.ir.optimize.inliner;
 
-import static org.hamcrest.CoreMatchers.containsString;
-
 import com.android.tools.r8.NeverClassInline;
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.ir.optimize.inliner.testclasses.Greeting;
+import com.android.tools.r8.utils.StringUtils;
 import org.junit.Test;
 
 /** Regression test for b/128604123. */
@@ -16,6 +15,7 @@
 
   @Test
   public void test() throws Exception {
+    String expectedOutput = StringUtils.lines("Greeter: Hello world!");
     testForR8(Backend.DEX)
         .addProgramClasses(
             TestClass.class, Greeter.class, Greeting.class, Greeting.getGreetingBase())
@@ -23,7 +23,7 @@
         .enableClassInliningAnnotations()
         .enableMergeAnnotations()
         .run(TestClass.class)
-        .assertFailureWithErrorThatMatches(containsString("IllegalAccessError"));
+        .assertSuccessWithOutput(expectedOutput);
   }
 
   static class TestClass {
