diff --git a/mingw-w64-crt/ChangeLog b/mingw-w64-crt/ChangeLog
index b25b50e..8a572b3 100644
--- a/mingw-w64-crt/ChangeLog
+++ b/mingw-w64-crt/ChangeLog
@@ -1,3 +1,9 @@
+2009-08-14  Kai Tietz  <kai.tietz@onevision.com>
+
+	* intrincs/ilockdec.c, intrincs/ilockdec16.c, intrincs/ilockdec64.c,
+	intrincs/ilockinc.c, intrincs/ilockinc16.c, and intrincs/ilockinc64.c:
+	Adjust to emulate VC intrinsic function behavior.
+
 2009-08-08  Kai Tietz  <kai.tietz@onevision.com>
 
 	* crt/crt0_w.c (UNICODE): Define it for build.
diff --git a/mingw-w64-crt/intrincs/ilockdec.c b/mingw-w64-crt/intrincs/ilockdec.c
index 406da61..6cc35e3 100644
--- a/mingw-w64-crt/intrincs/ilockdec.c
+++ b/mingw-w64-crt/intrincs/ilockdec.c
@@ -6,12 +6,11 @@
 
 LONG InterlockedDecrement(LONG volatile *Addend)
 {
-  unsigned char c;
-  unsigned char s;
-  __asm__ __volatile__(
-    "lock ; subl $1,%0; sete %1 ; sets %2"
-    :"=m" (*Addend), "=qm" (c), "=qm" (s)
-    :"m" (*Addend) : "memory");
-  return (c != 0 ? 0 : (s != 0 ? -1 : 1));
+  LONG ret, value = -1;
+  __asm__ ("lock\n\t"
+	       "xaddl %0,(%1)"
+	       : "=r" (ret)
+	       : "r" (Addend), "0" (value)
+	       : "memory");
+  return ret - 1;
 }
-
diff --git a/mingw-w64-crt/intrincs/ilockdec16.c b/mingw-w64-crt/intrincs/ilockdec16.c
index 26ad132..4ab4509 100644
--- a/mingw-w64-crt/intrincs/ilockdec16.c
+++ b/mingw-w64-crt/intrincs/ilockdec16.c
@@ -6,12 +6,12 @@
 
 SHORT InterlockedDecrement16(SHORT volatile *Addend)
 {
-  unsigned char c;
-  unsigned char s;
-  __asm__ __volatile__(
-    "lock ; subw $1,%0; sete %1 ; sets %2"
-    :"=m" (*Addend), "=qm" (c), "=qm" (s)
-    :"m" (*Addend) : "memory");
-  return (c != 0 ? 0 : (s != 0 ? -1 : 1));
+  SHORT ret, value = -1;
+  __asm__ ("lock\n\t"
+	       "xaddw %0,(%1)"
+	       : "=r" (ret)
+	       : "r" (Addend), "0" (value)
+	       : "memory");
+  return ret - 1;
 }
 
diff --git a/mingw-w64-crt/intrincs/ilockdec64.c b/mingw-w64-crt/intrincs/ilockdec64.c
index 5e3bede..a32156e 100644
--- a/mingw-w64-crt/intrincs/ilockdec64.c
+++ b/mingw-w64-crt/intrincs/ilockdec64.c
@@ -6,12 +6,12 @@
 
 LONG64 InterlockedDecrement64(LONG64 volatile *Addend)
 {
-  unsigned char c;
-  unsigned char s;
-  __asm__ __volatile__(
-    "lock ; subq $1,%0; sete %1 ; sets %2"
-    :"=m" (*Addend), "=qm" (c), "=qm" (s)
-    :"m" (*Addend) : "memory");
-  return (c != 0 ? 0 : (s != 0 ? -1 : 1));
+  LONG64 ret, value = -1LL;
+  __asm__ ("lock\n\t"
+	       "xaddq %0,(%1)"
+	       : "=r" (ret)
+	       : "r" (Addend), "0" (value)
+	       : "memory");
+  return ret - 1LL;
 }
 
diff --git a/mingw-w64-crt/intrincs/ilockinc.c b/mingw-w64-crt/intrincs/ilockinc.c
index 7d79dab..7e297b7 100644
--- a/mingw-w64-crt/intrincs/ilockinc.c
+++ b/mingw-w64-crt/intrincs/ilockinc.c
@@ -6,12 +6,11 @@
 
 LONG InterlockedIncrement(LONG volatile *Addend)
 {
-  unsigned char c;
-  unsigned char s;
-  __asm__ __volatile__(
-    "lock ; addl $1,%0; sete %1 ; sets %2"
-    :"=m" (*Addend), "=qm" (c), "=qm" (s)
-    :"m" (*Addend) : "memory");
-  return (c != 0 ? 0 : (s != 0 ? -1 : 1));
+  LONG ret, value = 1;
+  __asm__ ("lock\n\t"
+	       "xaddl %0,(%1)"
+	       : "=r" (ret)
+	       : "r" (Addend), "0" (value)
+	       : "memory");
+  return ret + 1;
 }
-
diff --git a/mingw-w64-crt/intrincs/ilockinc16.c b/mingw-w64-crt/intrincs/ilockinc16.c
index ffa99db..73509d1 100644
--- a/mingw-w64-crt/intrincs/ilockinc16.c
+++ b/mingw-w64-crt/intrincs/ilockinc16.c
@@ -6,12 +6,11 @@
 
 SHORT InterlockedIncrement16(SHORT volatile *Addend)
 {
-  unsigned char c;
-  unsigned char s;
-  __asm__ __volatile__(
-    "lock ; addw $1,%0; sete %1 ; sets %2"
-    :"=m" (*Addend), "=qm" (c), "=qm" (s)
-    :"m" (*Addend) : "memory");
-  return (c != 0 ? 0 : (s != 0 ? -1 : 1));
+  SHORT ret, value = 1;
+  __asm__ ("lock\n\t"
+	       "xaddw %0,(%1)"
+	       : "=r" (ret)
+	       : "r" (Addend), "0" (value)
+	       : "memory");
+  return ret + 1;
 }
-
diff --git a/mingw-w64-crt/intrincs/ilockinc64.c b/mingw-w64-crt/intrincs/ilockinc64.c
index 4a30ad3..2bd8115 100644
--- a/mingw-w64-crt/intrincs/ilockinc64.c
+++ b/mingw-w64-crt/intrincs/ilockinc64.c
@@ -6,12 +6,12 @@
 
 LONG64 InterlockedIncrement64(LONG64 volatile *Addend)
 {
-  unsigned char c;
-  unsigned char s;
-  __asm__ __volatile__(
-    "lock ; addq $1,%0; sete %1 ; sets %2"
-    :"=m" (*Addend), "=qm" (c), "=qm" (s)
-    :"m" (*Addend) : "memory");
-  return (c != 0 ? 0 : (s != 0 ? -1 : 1));
+  LONG64 ret, value = 1;
+  __asm__ ("lock\n\t"
+	       "xaddq %0,(%1)"
+	       : "=r" (ret)
+	       : "r" (Addend), "0" (value)
+	       : "memory");
+  return ret + 1LL;
 }
 
