diff --git a/src/object.cc b/src/object.cc
index 207a175..ad0f6b9 100644
--- a/src/object.cc
+++ b/src/object.cc
@@ -1469,7 +1469,7 @@
 // Create a modified UTF-8 encoded std::string from a java/lang/String object.
 std::string String::ToModifiedUtf8() const {
   const uint16_t* chars = GetCharArray()->GetData() + GetOffset();
-  size_t byte_count(CountUtf8Bytes(chars, GetLength()));
+  size_t byte_count = GetUtfLength();
   std::string result(byte_count, static_cast<char>(0));
   ConvertUtf16ToModifiedUtf8(&result[0], chars, GetLength());
   return result;
diff --git a/src/object.h b/src/object.h
index 7ba0847..ad8194a 100644
--- a/src/object.h
+++ b/src/object.h
@@ -2216,7 +2216,7 @@
   }
 
   int32_t GetUtfLength() const {
-    return CountUtf8Bytes(GetCharArray()->GetData(), GetLength());
+    return CountUtf8Bytes(GetCharArray()->GetData() + GetOffset(), GetLength());
   }
 
   uint16_t CharAt(int32_t index) const;
@@ -2297,6 +2297,7 @@
   static Class* java_lang_String_;
 
   friend struct StringOffsets;  // for verifying offset information
+  FRIEND_TEST(ObjectTest, StringLength);  // for SetOffset and SetCount
   DISALLOW_IMPLICIT_CONSTRUCTORS(String);
 };
 
diff --git a/src/object_test.cc b/src/object_test.cc
index 80ed0bb..bf07aa3 100644
--- a/src/object_test.cc
+++ b/src/object_test.cc
@@ -293,6 +293,18 @@
   EXPECT_FALSE(empty->Equals("a"));
 }
 
+TEST_F(ObjectTest, StringLength) {
+  SirtRef<String> string(String::AllocFromModifiedUtf8("android"));
+  EXPECT_EQ(string->GetLength(), 7);
+  EXPECT_EQ(string->GetUtfLength(), 7);
+
+  string->SetOffset(2);
+  string->SetCount(5);
+  EXPECT_TRUE(string->Equals("droid"));
+  EXPECT_EQ(string->GetLength(), 5);
+  EXPECT_EQ(string->GetUtfLength(), 5);
+}
+
 TEST_F(ObjectTest, DescriptorCompare) {
   ClassLinker* linker = class_linker_;
 
