diff --git a/src/c/src/mt_adaptor.c b/src/c/src/mt_adaptor.c
index 451eff1..2186f47 100644
--- a/src/c/src/mt_adaptor.c
+++ b/src/c/src/mt_adaptor.c
@@ -350,11 +350,7 @@ int32_t inc_ref_counter(zhandle_t* zh,int i)
 int32_t fetch_and_add(volatile int32_t* operand, int incr)
 {
     int32_t result;
-    asm __volatile__(
-         "lock xaddl %0,%1\n"
-         : "=r"(result), "=m"(*(int *)operand)
-         : "0"(incr)
-         : "memory");
+    result = __sync_fetch_and_add(operand, incr);
    return result;
 }
 
