reset prev_prefix at the entry of cs_disasm_ex(). this fixes a nasty segfault bug
diff --git a/cs.c b/cs.c
index c2ed6bd..12af4ae 100644
--- a/cs.c
+++ b/cs.c
@@ -309,6 +309,9 @@
 
 	handle->errnum = CS_ERR_OK;
 
+	// reset previous prefix for X86
+	handle->prev_prefix = 0;
+
 	memset(insn_cache, 0, sizeof(insn_cache));
 
 	while (size > 0) {
diff --git a/suite/benchmark.py b/suite/benchmark.py
index cc7e464..bf564f2 100755
--- a/suite/benchmark.py
+++ b/suite/benchmark.py
@@ -36,6 +36,10 @@
         )
 
 
+# for debugging
+def to_hex(s):
+    return " ".join("0x" + "{0:x}".format(ord(c)).zfill(2) for c in s) # <-- Python 3 is OK
+
 def get_code(f, size):
     code = f.read(size)
     if len(code) != size:  # reached end-of-file?
@@ -77,12 +81,16 @@
         cfile.seek(0)
         for i in xrange(3):
             code = get_code(cfile, 128)
+            #print to_hex(code)
+            #print
             cs(md, code)
 
         # start real benchmark
         c_t = 0
         for i in xrange(50000):
             code = get_code(cfile, 128)
+            #print to_hex(code)
+            #print
 
             t1 = time()
             cs(md, code)