diff --git a/library/memory_buffer_alloc.c b/library/memory_buffer_alloc.c
index 6e5a8ce..37788c8 100644
--- a/library/memory_buffer_alloc.c
+++ b/library/memory_buffer_alloc.c
@@ -542,17 +542,22 @@
 static void *buffer_alloc_malloc_mutexed( size_t len )
 {
     void *buf;
-    mbedtls_mutex_lock( &heap.mutex );
+    if( mbedtls_mutex_lock( &heap.mutex ) != 0 )
+        return( NULL );
     buf = buffer_alloc_malloc( len );
-    mbedtls_mutex_unlock( &heap.mutex );
+    if( mbedtls_mutex_unlock( &heap.mutex ) )
+        return( NULL );
     return( buf );
 }
 
 static void buffer_alloc_free_mutexed( void *ptr )
 {
-    mbedtls_mutex_lock( &heap.mutex );
+    /* We have to good option here, but corrupting the heap seems
+     * worse than loosing memory. */
+    if( mbedtls_mutex_lock( &heap.mutex ) )
+        return;
     buffer_alloc_free( ptr );
-    mbedtls_mutex_unlock( &heap.mutex );
+    (void) mbedtls_mutex_unlock( &heap.mutex );
 }
 #endif /* MBEDTLS_THREADING_C */
 
diff --git a/library/rsa.c b/library/rsa.c
index 1d6fd4a..6aee109 100644
--- a/library/rsa.c
+++ b/library/rsa.c
@@ -283,7 +283,8 @@
     }
 
 #if defined(MBEDTLS_THREADING_C)
-    mbedtls_mutex_lock( &ctx->mutex );
+    if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 )
+        return( ret );
 #endif
 
     olen = ctx->len;
@@ -292,7 +293,8 @@
 
 cleanup:
 #if defined(MBEDTLS_THREADING_C)
-    mbedtls_mutex_unlock( &ctx->mutex );
+    if( ( ret = mbedtls_mutex_unlock( &ctx->mutex ) ) != 0 )
+        return( ret );
 #endif
 
     mbedtls_mpi_free( &T );
@@ -315,7 +317,8 @@
     int ret, count = 0;
 
 #if defined(MBEDTLS_THREADING_C)
-    mbedtls_mutex_lock( &ctx->mutex );
+    if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 )
+        return( ret );
 #endif
 
     if( ctx->Vf.p != NULL )
@@ -351,7 +354,8 @@
 
 cleanup:
 #if defined(MBEDTLS_THREADING_C)
-    mbedtls_mutex_unlock( &ctx->mutex );
+    if( ( ret = mbedtls_mutex_unlock( &ctx->mutex ) ) != 0 )
+        return( ret );
 #endif
 
     return( ret );
@@ -408,7 +412,8 @@
     }
 
 #if defined(MBEDTLS_THREADING_C)
-    mbedtls_mutex_lock( &ctx->mutex );
+    if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 )
+        return( ret );
 #endif
 
 #if defined(MBEDTLS_RSA_NO_CRT)
@@ -452,7 +457,8 @@
 
 cleanup:
 #if defined(MBEDTLS_THREADING_C)
-    mbedtls_mutex_unlock( &ctx->mutex );
+    if( ( ret = mbedtls_mutex_unlock( &ctx->mutex ) ) != 0 )
+        return( ret );
     mbedtls_mpi_free( &Vi_copy ); mbedtls_mpi_free( &Vf_copy );
 #endif
     mbedtls_mpi_free( &T ); mbedtls_mpi_free( &T1 ); mbedtls_mpi_free( &T2 );
