diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index cee819c..5df6fe5 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -802,6 +802,12 @@
                 "UnicodeInternalTest")
             self.assertEquals((u"ab", 12), ignored)
 
+    def test_encode_length(self):
+        # Issue 3739
+        encoder = codecs.getencoder("unicode_internal")
+        self.assertEquals(encoder(u"a")[1], 1)
+        self.assertEquals(encoder(u"\xe9\u0142")[1], 2)
+
 # From http://www.gnu.org/software/libidn/draft-josefsson-idn-test-vectors.html
 nameprep_tests = [
     # 3.1 Map to nothing.
@@ -1292,8 +1298,7 @@
                 name = "latin_1"
             self.assertEqual(encoding.replace("_", "-"), name.replace("_", "-"))
             (bytes, size) = codecs.getencoder(encoding)(s)
-            if encoding != "unicode_internal":
-                self.assertEqual(size, len(s), "%r != %r (encoding=%r)" % (size, len(s), encoding))
+            self.assertEqual(size, len(s), "%r != %r (encoding=%r)" % (size, len(s), encoding))
             (chars, size) = codecs.getdecoder(encoding)(bytes)
             self.assertEqual(chars, s, "%r != %r (encoding=%r)" % (chars, s, encoding))
 
diff --git a/Modules/_codecsmodule.c b/Modules/_codecsmodule.c
index 6877238..495e4ff 100644
--- a/Modules/_codecsmodule.c
+++ b/Modules/_codecsmodule.c
@@ -646,7 +646,7 @@
 	data = PyUnicode_AS_DATA(obj);
 	size = PyUnicode_GET_DATA_SIZE(obj);
 	return codec_tuple(PyString_FromStringAndSize(data, size),
-			   size);
+			   PyUnicode_GET_SIZE(obj));
     }
     else {
 	if (PyObject_AsReadBuffer(obj, (const void **)&data, &size))
