diff --git a/native/jni/src/suggest/core/dicnode/dic_node.h b/native/jni/src/suggest/core/dicnode/dic_node.h
index fd3af1592f68b071d204d3b38d335543f0be75e1..65dad5677927b775f58d098d60889e21a035b7d1 100644
--- a/native/jni/src/suggest/core/dicnode/dic_node.h
+++ b/native/jni/src/suggest/core/dicnode/dic_node.h
@@ -218,7 +218,7 @@ class DicNode {
     }
 
     bool isFirstCharUppercase() const {
-        const int c = getOutputWordBuf()[0];
+        const int c = mDicNodeState.mDicNodeStateOutput.getCodePointAt(0);
         return CharUtils::isAsciiUpper(c);
     }
 
diff --git a/native/jni/src/suggest/core/dicnode/internal/dic_node_state_output.h b/native/jni/src/suggest/core/dicnode/internal/dic_node_state_output.h
index 216939afe438c73257909899fe18ac8fed79a948..bdb182c1d1e3e45edd8d346df24cae87d13d0b9f 100644
--- a/native/jni/src/suggest/core/dicnode/internal/dic_node_state_output.h
+++ b/native/jni/src/suggest/core/dicnode/internal/dic_node_state_output.h
@@ -61,7 +61,6 @@ class DicNodeStateOutput {
         }
     }
 
-    // TODO: Remove
     int getCodePointAt(const int index) const {
         return mCodePointsBuf[index];
     }
diff --git a/native/jni/src/suggest/policyimpl/typing/typing_traversal.h b/native/jni/src/suggest/policyimpl/typing/typing_traversal.h
index 3db00ad3a27dab5fa462367d19fcf67039a79c76..7c86b7dc9fb0c362c85840486253061f27ca8902 100644
--- a/native/jni/src/suggest/policyimpl/typing/typing_traversal.h
+++ b/native/jni/src/suggest/policyimpl/typing/typing_traversal.h
@@ -162,9 +162,8 @@ class TypingTraversal : public Traversal {
         if (probability < ScoringParams::THRESHOLD_NEXT_WORD_PROBABILITY) {
             return false;
         }
-        const int c = dicNode->getOutputWordBuf()[0];
         const bool shortCappedWord = dicNode->getNodeCodePointCount()
-                < ScoringParams::THRESHOLD_SHORT_WORD_LENGTH && CharUtils::isAsciiUpper(c);
+                < ScoringParams::THRESHOLD_SHORT_WORD_LENGTH && dicNode->isFirstCharUppercase();
         return !shortCappedWord
                 || probability >= ScoringParams::THRESHOLD_NEXT_WORD_PROBABILITY_FOR_CAPPED;
     }