diff --git a/bindings/ocaml/ffi_types.ml b/bindings/ocaml/ffi_types.ml
index acfb048a8a9f715a44aafc4794372ad16488cdf8..82e13f9afe6524f54b019deabd8f49866b942b64 100644
--- a/bindings/ocaml/ffi_types.ml
+++ b/bindings/ocaml/ffi_types.ml
@@ -349,6 +349,7 @@ module Types (F: Cstubs.Types.TYPE) =
       | KS_OPT_SYNTAX_NASM
       | KS_OPT_SYNTAX_MASM
       | KS_OPT_SYNTAX_GAS
+      | KS_OPT_SYNTAX_RADIX16
 
 
     let ks_opt_syntax_intel = constant "KS_OPT_SYNTAX_INTEL" int64_t
@@ -356,6 +357,7 @@ module Types (F: Cstubs.Types.TYPE) =
     let ks_opt_syntax_nasm = constant "KS_OPT_SYNTAX_NASM" int64_t
     let ks_opt_syntax_masm = constant "KS_OPT_SYNTAX_MASM" int64_t
     let ks_opt_syntax_gas = constant "KS_OPT_SYNTAX_GAS" int64_t
+    let ks_opt_syntax_radix16 = constant "KS_OPT_SYNTAX_RADIX16" int64_t
 
     let ks_opt_value = enum "ks_opt_value" [
                               KS_OPT_SYNTAX_INTEL, ks_opt_syntax_intel;
@@ -363,6 +365,7 @@ module Types (F: Cstubs.Types.TYPE) =
                               KS_OPT_SYNTAX_NASM, ks_opt_syntax_nasm;
                               KS_OPT_SYNTAX_MASM, ks_opt_syntax_masm;
                               KS_OPT_SYNTAX_GAS, ks_opt_syntax_gas;
+                              KS_OPT_SYNTAX_RADIX16, ks_opt_syntax_radix16
                             ]
 
 
diff --git a/bindings/ocaml/keystone.mli b/bindings/ocaml/keystone.mli
index 4fdb255550499228278db9a14850f98727314a7e..b4991fbd018c871ea162f72f75f75235f567e1f3 100644
--- a/bindings/ocaml/keystone.mli
+++ b/bindings/ocaml/keystone.mli
@@ -75,6 +75,7 @@ module Types : sig
     | KS_OPT_SYNTAX_NASM
     | KS_OPT_SYNTAX_MASM
     | KS_OPT_SYNTAX_GAS
+    | KS_OPT_SYNTAX_RADIX16
 
   type ks_mode =
     | KS_MODE_ARM
diff --git a/bindings/ocaml/test_bindings.ml b/bindings/ocaml/test_bindings.ml
index 09d3f2b4057a2d6896140ed9cb7ff2a26d06d23e..790e0c20682b62341373281e4f4ef68abd89bfb7 100644
--- a/bindings/ocaml/test_bindings.ml
+++ b/bindings/ocaml/test_bindings.ml
@@ -3,6 +3,7 @@ open Keystone
 module T = Keystone.Types
 
 let test_ks arch mode ?(syntax=T.KS_OPT_SYNTAX_INTEL) ?(endian=T.KS_MODE_LITTLE_ENDIAN) asm  =
+  Printf.printf "ASSEMBLING %s\n" asm; flush stdout;
   match (ks_open arch ~endian:endian mode) with
   | Result.Ok engine ->
      begin
@@ -16,7 +17,8 @@ let test_ks arch mode ?(syntax=T.KS_OPT_SYNTAX_INTEL) ?(endian=T.KS_MODE_LITTLE_
                         result.stat_count;
           ignore(ks_close engine)
 
-       | Result.Error s -> Printf.printf "ERROR: failed on ks_asm with: %s\n" s
+       | Result.Error s -> ignore (ks_close engine);
+                           Printf.printf "ERROR: failed on ks_asm with: %s\n" s
      end
 
   | Result.Error e -> Printf.printf "ERROR: failed on ks_open: %s\n" e
@@ -28,6 +30,7 @@ let _ =
   test_ks T.KS_ARCH_X86 T.KS_MODE_64 "add rax, rcx";
   test_ks T.KS_ARCH_X86 T.KS_MODE_32 ~syntax:T.KS_OPT_SYNTAX_ATT "add %ecx, %eax";
   test_ks T.KS_ARCH_X86 T.KS_MODE_64 ~syntax:T.KS_OPT_SYNTAX_ATT "add %rcx, %rax";
+  test_ks T.KS_ARCH_X86 T.KS_MODE_32 ~syntax:T.KS_OPT_SYNTAX_RADIX16 "add eax, 0x15";
 
   test_ks T.KS_ARCH_ARM T.KS_MODE_ARM  "sub r1, r2, r5";
   test_ks T.KS_ARCH_ARM T.KS_MODE_ARM  "sub r1, r2, r5";
@@ -52,4 +55,4 @@ let _ =
   test_ks T.KS_ARCH_SPARC T.KS_MODE_SPARC32 "add %g1, %g2, %g3";
   test_ks T.KS_ARCH_SPARC T.KS_MODE_SPARC32 ~endian:T.KS_MODE_BIG_ENDIAN "add %g1, %g2, %g3";
 
-  test_ks T.KS_ARCH_SYSTEMZ T.KS_MODE_BIG_ENDIAN "a %r0, 4092(%r15, %r1)"
+  test_ks T.KS_ARCH_SYSTEMZ T.KS_MODE_BIG_ENDIAN "a %r0, 4095(%r15, %r1)"