diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/query/internal/index/AbstractIndexMaintenanceIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/query/internal/index/AbstractIndexMaintenanceIntegrationTest.java
index 9917dd1..53a9d9d 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/query/internal/index/AbstractIndexMaintenanceIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/query/internal/index/AbstractIndexMaintenanceIntegrationTest.java
@@ -22,6 +22,7 @@
 import org.junit.experimental.categories.Category;
 
 import org.apache.geode.cache.Cache;
+import org.apache.geode.cache.EvictionAttributes;
 import org.apache.geode.cache.RegionShortcut;
 import org.apache.geode.cache.query.CacheUtils;
 import org.apache.geode.cache.query.IndexExistsException;
@@ -116,6 +117,23 @@
     statusIndex.removeIndexMapping(entry, IndexProtocol.OTHER_OP);
   }
 
+  @Test
+  public void indexKeysShouldBeStringIfRegionHasEvictionEnabled() throws Exception {
+    CacheUtils.startCache();
+    Cache cache = CacheUtils.getCache();
+    LocalRegion region =
+        (LocalRegion) cache.createRegionFactory(RegionShortcut.REPLICATE)
+            .setEvictionAttributes(EvictionAttributes.createLRUEntryAttributes())
+            .create("portfolios");
+    QueryService qs = cache.getQueryService();
+    AbstractIndex statusIndex =
+        createIndex(qs, "statusIndex", "value.status", "/portfolios.entrySet()");
+
+    statusIndex.setPdxStringFlag(new PdxString("IndexKey"));
+    assertFalse(statusIndex.isIndexOnPdxKeys());
+  }
+
+
   protected abstract AbstractIndex createIndex(final QueryService qs, String name,
       String indexExpression, String regionPath)
       throws IndexNameConflictException, IndexExistsException, RegionNotFoundException;
diff --git a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java
index 98f7a91..bec7fb6 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/query/internal/index/AbstractIndex.java
@@ -2024,7 +2024,8 @@
       return;
     }
     if (!this.isIndexedPdxKeys) {
-      if (key instanceof PdxString && this.region.getAttributes().getCompressor() == null) {
+      if (region.getAttributes().getEvictionAttributes().isNoEviction() == true
+          && key instanceof PdxString && this.region.getAttributes().getCompressor() == null) {
         this.isIndexedPdxKeys = true;
       }
     }
