diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.cpp
index 2a783543ae4a6062e7571bfd510d14f1e7d2b41a..a871e2b91b47c278da73865edab00dd1a5bf768c 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.cpp
@@ -189,7 +189,7 @@ bool BigramDictContent::runGCBigramList(const int bigramListPos,
         // Update has next flag in the last written entry.
         const BigramEntry bigramEntry = getBigramEntry(lastEntryPos).updateHasNextAndGetEntry(
                 false /* hasNext */);
-        if (!writeBigramEntry(&bigramEntry, writingPos)) {
+        if (!writeBigramEntry(&bigramEntry, lastEntryPos)) {
             AKLOGE("Cannot write bigram entry to set hasNext flag after GC. pos: %d", writingPos);
             return false;
         }