diff --git a/library/bignum_core.h b/library/bignum_core.h
index 2248f49..622f018 100644
--- a/library/bignum_core.h
+++ b/library/bignum_core.h
@@ -30,7 +30,7 @@
  *
  * \param x     Integer to count leading zero bits.
  *
- * \return      Tne munber of leading zero bits in \p x.
+ * \return      The number of leading zero bits in \p x.
  */
 size_t mbedtls_mpi_core_clz( const mbedtls_mpi_uint x );
 
@@ -39,7 +39,7 @@
  * \param X     The address of the MPI.
  * \param nx    The number of limbs of \p X.
  *
- * \return      Tne number of bits in \p X.
+ * \return      The number of bits in \p X.
  */
 size_t mbedtls_mpi_core_bitlen( const mbedtls_mpi_uint *X, size_t nx );
 
@@ -60,7 +60,7 @@
  * \param X      The address of the MPI.
  * \param nx     The number of limbs of \p X.
  * \param buf    The input buffer to import from.
- * \param buflen Tne length in bytes of \p buf.
+ * \param buflen The length in bytes of \p buf.
  *
  * \return       \c 0 if successful.
  * \return       #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't
@@ -79,7 +79,7 @@
  * \param X      The address of the MPI.
  * \param nx     The number of limbs of \p X.
  * \param buf    The input buffer to import from.
- * \param buflen Tne length in bytes of \p buf.
+ * \param buflen The length in bytes of \p buf.
  *
  * \return       \c 0 if successful.
  * \return       #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't
@@ -95,7 +95,7 @@
  * \param X      The address of the MPI.
  * \param nx     The number of limbs of \p X.
  * \param buf    The output buffer to import.
- * \param buflen Tne length in bytes of \p buf.
+ * \param buflen The length in bytes of \p buf.
  *
  * \return       \c 0 if successful.
  * \return       #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p buf isn't
@@ -111,7 +111,7 @@
  * \param X      The address of the MPI.
  * \param nx     The number of limbs of \p X.
  * \param buf    The output buffer to import.
- * \param buflen Tne length in bytes of \p buf.
+ * \param buflen The length in bytes of \p buf.
  *
  * \return       \c 0 if successful.
  * \return       #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p buf isn't
diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h
index 2d7fc81..8f0f0f2 100644
--- a/library/bignum_mod_raw.h
+++ b/library/bignum_mod_raw.h
@@ -34,12 +34,12 @@
  * \param X      The address of the MPI. The size is determined by \p m.
  * \param m      The address of a modulus related to \p X.
  * \param buf    The input buffer to import from.
- * \param buflen Tne length in bytes of \p buf.
+ * \param buflen The length in bytes of \p buf.
  *
  * \return       \c 0 if successful.
  * \return       #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't
  *               large enough to hold the value in \p buf.
- * \return       #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external reprezentation
+ * \return       #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation
  *               of \p m is invalid or \p X is less then \p m.
  */
 int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X,
@@ -52,12 +52,12 @@
  * \param X      The address of the MPI. The size is determined by \p m.
  * \param m      The address of a modulus related to \p X.
  * \param buf    The output buffer to import.
- * \param buflen Tne length in bytes of \p buf.
+ * \param buflen The length in bytes of \p buf.
  *
  * \return       \c 0 if successful.
  * \return       #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p buf isn't
  *               large enough to hold the value of \p X.
- * \return       #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external reprezentation
+ * \return       #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation
  *               of \p m is invalid.
  */
 int mbedtls_mpi_mod_raw_write( mbedtls_mpi_uint *X,
