diff --git a/library/main/src/com/android/setupwizardlib/util/Partner.java b/library/main/src/com/android/setupwizardlib/util/Partner.java
index 3a603ee..baf66d1 100644
--- a/library/main/src/com/android/setupwizardlib/util/Partner.java
+++ b/library/main/src/com/android/setupwizardlib/util/Partner.java
@@ -91,7 +91,7 @@
      */
     public static CharSequence getText(Context context, @StringRes int id) {
         final ResourceEntry entry = getResourceEntry(context, id);
-        return entry.resources.getText(id);
+        return entry.resources.getText(entry.id);
     }
 
     /**
diff --git a/library/test/robotest/src/com/android/setupwizardlib/util/PartnerTest.java b/library/test/robotest/src/com/android/setupwizardlib/util/PartnerTest.java
index f8e71be..2285cd5 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/util/PartnerTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/util/PartnerTest.java
@@ -16,6 +16,8 @@
 
 package com.android.setupwizardlib.util;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
@@ -146,6 +148,19 @@
     }
 
     @Test
+    public void getText_shouldReturnPartnerValueIfPresent() {
+        final CharSequence expectedPartnerText = "partner";
+        doReturn(12345).when(mPartnerResources)
+                .getIdentifier(eq("suw_next_button_label"), eq("string"), anyString());
+        doReturn(expectedPartnerText).when(mPartnerResources).getText(eq(12345));
+        mPackageManager.addResolveInfoForIntent(
+                new Intent(ACTION_PARTNER_CUSTOMIZATION),
+                Collections.singletonList(createResolveInfo("test.partner.package", true, true)));
+        final CharSequence partnerText = Partner.getText(mContext, R.string.suw_next_button_label);
+        assertThat(partnerText).isEqualTo(expectedPartnerText);
+    }
+
+    @Test
     public void testLoadDefaultValue() {
         mPackageManager.addResolveInfoForIntent(
                 new Intent(ACTION_PARTNER_CUSTOMIZATION),
