diff --git a/include/polarssl/ecp.h b/include/polarssl/ecp.h
index 094a840..9bea64e 100644
--- a/include/polarssl/ecp.h
+++ b/include/polarssl/ecp.h
@@ -460,7 +460,7 @@
  * \brief           Set a group using well-known domain parameters
  *
  * \param grp       Destination group
- * \param index     Index in the list of well-known domain parameters
+ * \param id        Index in the list of well-known domain parameters
  *
  * \return          0 if successful,
  *                  POLARSSL_ERR_MPI_XXX if initialization failed
@@ -469,7 +469,7 @@
  * \note            Index should be a value of RFC 4492's enum NamdeCurve,
  *                  possibly in the form of a POLARSSL_ECP_DP_XXX macro.
  */
-int ecp_use_known_dp( ecp_group *grp, ecp_group_id index );
+int ecp_use_known_dp( ecp_group *grp, ecp_group_id id );
 
 /**
  * \brief           Set a group from a TLS ECParameters record
diff --git a/include/polarssl/x509.h b/include/polarssl/x509.h
index de487ce..5a49a58 100644
--- a/include/polarssl/x509.h
+++ b/include/polarssl/x509.h
@@ -272,23 +272,23 @@
  * \brief          Check a given x509_time against the system time and check
  *                 if it is not expired.
  *
- * \param time     x509_time to check
+ * \param tm       x509_time to check
  *
  * \return         0 if the x509_time is still valid,
  *                 1 otherwise.
  */
-int x509_time_expired( const x509_time *time );
+int x509_time_expired( const x509_time *tm );
 
 /**
  * \brief          Check a given x509_time against the system time and check
  *                 if it is not from the future.
  *
- * \param time     x509_time to check
+ * \param tm       x509_time to check
  *
  * \return         0 if the x509_time is already valid,
  *                 1 otherwise.
  */
-int x509_time_future( const x509_time *time );
+int x509_time_future( const x509_time *tm );
 
 /**
  * \brief          Checkup routine
@@ -317,7 +317,7 @@
                       md_type_t *md_alg, pk_type_t *pk_alg,
                       void **sig_opts );
 int x509_get_time( unsigned char **p, const unsigned char *end,
-                   x509_time *time );
+                   x509_time *t );
 int x509_get_serial( unsigned char **p, const unsigned char *end,
                      x509_buf *serial );
 int x509_get_ext( unsigned char **p, const unsigned char *end,
