Index: libcfa/src/bits/weakso_locks.hfa
===================================================================
--- libcfa/src/bits/weakso_locks.hfa	(revision d971c8d1dfe6d5d040af4d236c91d2b9415adb40)
+++ libcfa/src/bits/weakso_locks.hfa	(revision d27b6be1464644fcbf97301269c8fb01bcfc1766)
@@ -70,5 +70,5 @@
 static inline void ^?{}( multiple_acquisition_lock & this ) {}
 static inline void   lock     ( multiple_acquisition_lock & this ) { lock    ( (blocking_lock &)this ); }
-static inline void   try_lock ( multiple_acquisition_lock & this ) { try_lock( (blocking_lock &)this ); }
+static inline bool   try_lock ( multiple_acquisition_lock & this ) { return try_lock( (blocking_lock &)this ); }
 static inline void   unlock   ( multiple_acquisition_lock & this ) { unlock  ( (blocking_lock &)this ); }
 static inline void   on_wait  ( multiple_acquisition_lock & this ) { on_wait ( (blocking_lock &)this ); }
Index: libcfa/src/concurrency/clib/cfathread.cfa
===================================================================
--- libcfa/src/concurrency/clib/cfathread.cfa	(revision d971c8d1dfe6d5d040af4d236c91d2b9415adb40)
+++ libcfa/src/concurrency/clib/cfathread.cfa	(revision d27b6be1464644fcbf97301269c8fb01bcfc1766)
@@ -245,7 +245,11 @@
 	int cfathread_mutex_init(cfathread_mutex_t *restrict mut, const cfathread_mutexattr_t *restrict) __attribute__((nonnull (1))) { *mut = new(); return 0; }
 	int cfathread_mutex_destroy(cfathread_mutex_t *mut) __attribute__((nonnull (1))) { delete( *mut ); return 0; }
-	int cfathread_mutex_lock   (cfathread_mutex_t *mut) __attribute__((nonnull (1))) { lock    ( (*mut)->impl ); return 0; }
-	int cfathread_mutex_trylock(cfathread_mutex_t *mut) __attribute__((nonnull (1))) { try_lock( (*mut)->impl ); return 0; }
-	int cfathread_mutex_unlock (cfathread_mutex_t *mut) __attribute__((nonnull (1))) { unlock  ( (*mut)->impl ); return 0; }
+	int cfathread_mutex_lock   (cfathread_mutex_t *mut) __attribute__((nonnull (1))) { lock( (*mut)->impl ); return 0; }
+	int cfathread_mutex_unlock (cfathread_mutex_t *mut) __attribute__((nonnull (1))) { unlock( (*mut)->impl ); return 0; }
+	int cfathread_mutex_trylock(cfathread_mutex_t *mut) __attribute__((nonnull (1))) {
+		bool ret = try_lock( (*mut)->impl );
+		if( ret ) return 0;
+		else return EBUSY;
+	}
 
 	//--------------------
Index: libcfa/src/concurrency/locks.hfa
===================================================================
--- libcfa/src/concurrency/locks.hfa	(revision d971c8d1dfe6d5d040af4d236c91d2b9415adb40)
+++ libcfa/src/concurrency/locks.hfa	(revision d27b6be1464644fcbf97301269c8fb01bcfc1766)
@@ -32,5 +32,5 @@
 static inline void ^?{}( single_acquisition_lock & this ) {}
 static inline void   lock      ( single_acquisition_lock & this ) { lock    ( (blocking_lock &)this ); }
-static inline void   try_lock  ( single_acquisition_lock & this ) { try_lock( (blocking_lock &)this ); }
+static inline bool   try_lock  ( single_acquisition_lock & this ) { return try_lock( (blocking_lock &)this ); }
 static inline void   unlock    ( single_acquisition_lock & this ) { unlock  ( (blocking_lock &)this ); }
 static inline void   on_wait   ( single_acquisition_lock & this ) { on_wait ( (blocking_lock &)this ); }
@@ -47,5 +47,5 @@
 static inline void ^?{}( owner_lock & this ) {}
 static inline void   lock     ( owner_lock & this ) { lock    ( (blocking_lock &)this ); }
-static inline void   try_lock ( owner_lock & this ) { try_lock( (blocking_lock &)this ); }
+static inline bool   try_lock ( owner_lock & this ) { return try_lock( (blocking_lock &)this ); }
 static inline void   unlock   ( owner_lock & this ) { unlock  ( (blocking_lock &)this ); }
 static inline void   on_wait  ( owner_lock & this ) { on_wait ( (blocking_lock &)this ); }
