diff --git a/library/bignum_mod.c b/library/bignum_mod.c
index 770e633..c10fb2e 100644
--- a/library/bignum_mod.c
+++ b/library/bignum_mod.c
@@ -210,8 +210,8 @@
 
 /* BEGIN MERGE SLOT 7 */
 int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r,
-                          mbedtls_mpi_mod_modulus *m,
-                          unsigned char *buf,
+                          const mbedtls_mpi_mod_modulus *m,
+                          const unsigned char *buf,
                           size_t buflen )
 {
     int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA;
@@ -219,7 +219,7 @@
     if ( r == NULL || m == NULL )
         goto cleanup;
 
-    if ( r->p == NULL || m->p == NULL || r->limbs > m->limbs ||\
+    if ( r->p == NULL || m->p == NULL || r->limbs > m->limbs ||
          r->limbs == 0 || m->limbs == 0 )
         goto cleanup;
 
@@ -228,6 +228,8 @@
     if( ret != 0 )
         goto cleanup;
 
+    r->limbs = m->limbs;
+
     if (m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY)
        ret = mbedtls_mpi_mod_raw_to_mont_rep(r->p, m);
 
@@ -235,8 +237,8 @@
     return ( ret );
 }
 
-int mbedtls_mpi_mod_write( mbedtls_mpi_mod_residue *r,
-                           mbedtls_mpi_mod_modulus *m,
+int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r,
+                           const mbedtls_mpi_mod_modulus *m,
                            unsigned char *buf,
                            size_t buflen )
 {
@@ -245,7 +247,7 @@
     if ( r == NULL || m == NULL )
         goto cleanup;
 
-    if ( r->p == NULL || m->p == NULL || r->limbs > m->limbs ||\
+    if ( r->p == NULL || m->p == NULL || r->limbs > m->limbs ||
          r->limbs == 0 || m->limbs == 0 )
         goto cleanup;
 
diff --git a/library/bignum_mod.h b/library/bignum_mod.h
index 4a01dfc..f0ce3c4 100644
--- a/library/bignum_mod.h
+++ b/library/bignum_mod.h
@@ -177,8 +177,9 @@
 /** Read public representation data stored in a buffer into a residue structure.
  *
  * The `mbedtls_mpi_mod_residue` and `mbedtls_mpi_mod_modulus` structures must
- * be compatible. The data will be automatically converted into the appropriate
- * representation based on the value of `m->int_rep field`.
+ * be compatible (Data in public representation is assumed to be in the m->ext_rep
+ * and will be padded to m->limbs). The data will be automatically converted
+ * into the appropriate internal representation based on the value of `m->int_rep`.
  *
  * \param r      The address of the residue related to \p m. It must have as
  *               many limbs as the modulus \p m.
@@ -193,15 +194,17 @@
  *               of \p m is invalid or \p X is not less than \p m.
  */
 int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r,
-                          mbedtls_mpi_mod_modulus *m,
-                          unsigned char *buf,
+                          const mbedtls_mpi_mod_modulus *m,
+                          const unsigned char *buf,
                           size_t buflen );
 
 /** Write residue data onto a buffer using public representation data.
  *
  * The `mbedtls_mpi_mod_residue` and `mbedtls_mpi_mod_modulus` structures must
- * be compatible. The data will be automatically converted into the appropriate
- * representation based on the value of `m->int_rep field`.
+ * be compatible (Data will be exported onto the bufer using the m->ext_rep
+ * and will be read as of m->limbs length).The data will be automatically
+ * converted from the appropriate internal representation based on the
+ * value of `m->int_rep field`.
  *
  * \param r      The address of the residue related to \p m. It must have as
  *               many limbs as the modulus \p m.
@@ -215,8 +218,8 @@
  * \return       #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation
  *               of \p m is invalid.
  */
-int mbedtls_mpi_mod_write( mbedtls_mpi_mod_residue *r,
-                           mbedtls_mpi_mod_modulus *m,
+int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r,
+                           const mbedtls_mpi_mod_modulus *m,
                            unsigned char *buf,
                            size_t buflen );
 /* END MERGE SLOT 7 */
