Fix problem when exec'ing a string with a coding
diff --git a/Lib/test/test_coding.py b/Lib/test/test_coding.py
index e83015e..62cf555 100644
--- a/Lib/test/test_coding.py
+++ b/Lib/test/test_coding.py
@@ -21,6 +21,11 @@
         fp.close()
         self.assertRaises(SyntaxError, compile, text, filename, 'exec')
 
+    def test_exec_valid_coding(self):
+        d = {}
+        exec('# coding: cp949\na = 5\n', d)
+        self.assertEqual(d['a'], 5)
+
 def test_main():
     test.test_support.run_unittest(CodingTest)
 
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index 00bb38a..284082d 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -632,7 +632,7 @@
 				"unknown encoding: %s", tok->enc);
 			return error_ret(tok);
 		}
-		str = PyString_AsString(utf8);
+		str = PyBytes_AsString(utf8);
 	}
 	assert(tok->decoding_buffer == NULL);
 	tok->decoding_buffer = utf8; /* CAUTION */