diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c
index 7c17e56..2460329 100644
--- a/library/bignum_mod_raw.c
+++ b/library/bignum_mod_raw.c
@@ -119,17 +119,16 @@
 /* END MERGE SLOT 4 */
 
 /* BEGIN MERGE SLOT 5 */
-void MPI_CORE(add_mod)( mbedtls_mpi_uint *X,
-                        mbedtls_mpi_uint const *A,
-                        mbedtls_mpi_uint const *B,
-                        const mbedtls_mpi_uint *N,
-                        size_t n )
+void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X,
+                              mbedtls_mpi_uint const *A,
+                              mbedtls_mpi_uint const *B,
+                              const mbedtls_mpi_uint *N,
+                              size_t limbs )
 {
-    size_t carry, borrow = 0, fixup;
-    carry  = mbedtls_mpi_core_add( X, A, B, n );
-    borrow = mbedtls_mpi_core_sub( X, X, N, n);
-    fixup  = ( carry < borrow );
-    (void) mbedtls_mpi_core_add_if( X, N, n, fixup );
+    size_t carry, borrow = 0;
+    carry  = mbedtls_mpi_core_add( X, A, B, limbs );
+    borrow = mbedtls_mpi_core_sub( X, X, N, limbs);
+    (void) mbedtls_mpi_core_add_if( X, N, limbs, ( carry < borrow ) );
 }
 /* END MERGE SLOT 5 */
 
