unicode_writer_finish() checks string consistency
diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py
index 8468fbf..2eadd4d 100644
--- a/Lib/test/test_unicode.py
+++ b/Lib/test/test_unicode.py
@@ -1064,6 +1064,10 @@
         self.assertEqual('%f' % INF, 'inf')
         self.assertEqual('%F' % INF, 'INF')
 
+        # PEP 393
+        self.assertEqual('%.1s' % "a\xe9\u20ac", 'a')
+        self.assertEqual('%.2s' % "a\xe9\u20ac", 'a\xe9')
+
     def test_startswith_endswith_errors(self):
         for meth in ('foo'.startswith, 'foo'.endswith):
             with self.assertRaises(TypeError) as cm:
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 0722312..2c8378e 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -13320,6 +13320,7 @@
         Py_DECREF(writer->buffer);
         return NULL;
     }
+    assert(_PyUnicode_CheckConsistency(writer->buffer, 1));
     return writer->buffer;
 }