diff --git a/include/polarssl/aes.h b/include/polarssl/aes.h
index f9b6825..c94478b 100644
--- a/include/polarssl/aes.h
+++ b/include/polarssl/aes.h
@@ -1,7 +1,7 @@
 /**
  * \file aes.h
  *
- * \brief AES block cipher encryption
+ * \brief AES block cipher
  *
  *  Copyright (C) 2006-2010, Brainspark B.V.
  *
diff --git a/include/polarssl/certs.h b/include/polarssl/certs.h
index af8fcd6..5399e32 100644
--- a/include/polarssl/certs.h
+++ b/include/polarssl/certs.h
@@ -1,7 +1,7 @@
 /**
  * \file certs.h
  *
- * \brief Camellia block cipher
+ * \brief Sample certificates and DHM parameters for testing
  *
  *  Copyright (C) 2006-2010, Brainspark B.V.
  *
diff --git a/include/polarssl/cipher.h b/include/polarssl/cipher.h
index 23b0f3d..27dc7b9 100644
--- a/include/polarssl/cipher.h
+++ b/include/polarssl/cipher.h
@@ -296,7 +296,7 @@
  *
  * \returns             0 on success, 1 if parameter verification fails.
  */
-int cipher_setkey( cipher_context_t *ctx, const unsigned char *key, int key_len,
+int cipher_setkey( cipher_context_t *ctx, const unsigned char *key, int key_length,
         const operation_t operation );
 
 /**
diff --git a/include/polarssl/config.h b/include/polarssl/config.h
index 2372c35..1cf5b50 100644
--- a/include/polarssl/config.h
+++ b/include/polarssl/config.h
@@ -35,32 +35,45 @@
 #define _CRT_SECURE_NO_DEPRECATE 1
 #endif
 
-/*
+/**
  * \name SECTION: System support
  *
  * This section sets system specific settings.
  * \{
  */
 
-/*
- * Uncomment if native integers are 8-bit wide.
+/**
+ * \def POLARSSL_HAVE_INT8
  *
+ * The system uses 8-bit wide native integers.
+ *
+ * Uncomment if native integers are 8-bit wide.
 #define POLARSSL_HAVE_INT8
  */
 
-/*
- * Uncomment if native integers are 16-bit wide.
+/**
+ * \def POLARSSL_HAVE_INT16
  *
+ * The system uses 16-bit wide native integers.
+ *
+ * Uncomment if native integers are 16-bit wide.
 #define POLARSSL_HAVE_INT16
  */
 
-/*
- * Uncomment if the compiler supports long long.
+/**
+ * \def POLARSSL_HAVE_LONGLONG
  *
+ * The compiler supports the use of long long.
+ *
+ * Uncomment if the compiler supports long long.
 #define POLARSSL_HAVE_LONGLONG
  */
 
-/*
+/**
+ * \def POLARSSL_HAVE_ASM
+ *
+ * The compiler has support for asm()
+ *
  * Uncomment to enable the use of assembly code.
  *
  * Requires support for asm() in compiler.
@@ -73,14 +86,18 @@
  */
 #define POLARSSL_HAVE_ASM
 
-/*
+/**
+ * \def POLARSSL_HAVE_SSE2
+ *
+ * CPI supports SSE2 instruction set.
+ *
  * Uncomment if the CPU supports SSE2 (IA-32 specific).
  *
 #define POLARSSL_HAVE_SSE2
  */
 /* \} name */
 
-/*
+/**
  * \name SECTION: PolarSSL feature support
  *
  * This section sets support for features that are or are not needed
@@ -88,36 +105,50 @@
  * \{
  */
 
-/*
+/**
+ * \def POLARSSL_DEBUG_MSG
+ *
  * Enable all SSL/TLS debugging messages.
  */
 #define POLARSSL_DEBUG_MSG
 
-/*
+/**
+ * \def POLARSSL_SELF_TEST
+ *
  * Enable the checkup functions (*_self_test).
  */
 #define POLARSSL_SELF_TEST
 
-/*
+/**
+ * \def POLARSSL_GENPRIME
+ *
  * Enable the prime-number generation code.
  */
 #define POLARSSL_GENPRIME
 
-/*
+/**
+ * \def POLARSSL_AES_ROM_TABLES
+ *
+ * Store the AES tables in ROM.
+ *
  * Uncomment this macro to store the AES tables in ROM.
  *
 #define POLARSSL_AES_ROM_TABLES
  */
 /* \} name */
 
-/*
+/**
  * \name SECTION: PolarSSL modules
  *
  * This section enables or disables entire modules in PolarSSL
  * \{
  */
 
-/*
+/**
+ * \def POLARSSL_AES_C
+ *
+ * Enable the AES block cipher.
+ *
  * Module:  library/aes.c
  * Caller:  library/ssl_tls.c
  *
@@ -128,7 +159,11 @@
  */
 #define POLARSSL_AES_C
 
-/*
+/**
+ * \def POLARSSL_ARC4_C
+ *
+ * Enable the ARCFOUR stream cipher.
+ *
  * Module:  library/arc4.c
  * Caller:  library/ssl_tls.c
  *
@@ -138,7 +173,11 @@
  */
 #define POLARSSL_ARC4_C
 
-/*
+/**
+ * \def POLARSSL_BASE64_C
+ *
+ * Enable the Base64 module.
+ *
  * Module:  library/base64.c
  * Caller:  library/x509parse.c
  *
@@ -146,7 +185,11 @@
  */
 #define POLARSSL_BASE64_C
 
-/*
+/**
+ * \def POLARSSL_BIGNUM_C
+ *
+ * Enable the multo-precision integer library.
+ *
  * Module:  library/bignum.c
  * Caller:  library/dhm.c
  *          library/rsa.c
@@ -157,7 +200,11 @@
  */
 #define POLARSSL_BIGNUM_C
 
-/*
+/**
+ * \def POLARSSL_CAMELLIA_C
+ *
+ * Enable the Camellia block cipher.
+ *
  * Module:  library/camellia.c
  * Caller:  library/ssl_tls.c
  *
@@ -168,7 +215,11 @@
  */
 #define POLARSSL_CAMELLIA_C
 
-/*
+/**
+ * \def POLARSSL_CERTS_C
+ *
+ * Enable the test certificates.
+ *
  * Module:  library/certs.c
  * Caller:
  *
@@ -176,7 +227,11 @@
  */
 #define POLARSSL_CERTS_C
 
-/*
+/**
+ * \def POLARSSL_CIPHER_C
+ *
+ * Enable the generic cipher layer.
+ *
  * Module:  library/cipher.c
  * Caller:
  *
@@ -184,7 +239,11 @@
  */
 #define POLARSSL_CIPHER_C
 
-/*
+/**
+ * \def POLARSSL_DEBUG_C
+ *
+ * Enable the debug functions.
+ *
  * Module:  library/debug.c
  * Caller:  library/ssl_cli.c
  *          library/ssl_srv.c
@@ -194,7 +253,11 @@
  */
 #define POLARSSL_DEBUG_C
 
-/*
+/**
+ * \def POLARSSL_DES_C
+ *
+ * Enable the DES block cipher.
+ *
  * Module:  library/des.c
  * Caller:  library/ssl_tls.c
  *
@@ -204,7 +267,11 @@
  */
 #define POLARSSL_DES_C
 
-/*
+/**
+ * \def POLARSSL_DHM_C
+ *
+ * Enable the Diffie-Hellman-Merkle key exchange.
+ *
  * Module:  library/dhm.c
  * Caller:  library/ssl_cli.c
  *          library/ssl_srv.c
@@ -216,7 +283,11 @@
  */
 #define POLARSSL_DHM_C
 
-/*
+/**
+ * \def POLARSSL_HAVEGE_C
+ *
+ * Enable the HAVEGE random generator.
+ *
  * Module:  library/havege.c
  * Caller:
  *
@@ -224,7 +295,11 @@
  */
 #define POLARSSL_HAVEGE_C
 
-/*
+/**
+ * \def POLARSSL_MD_C
+ *
+ * Enable the generic message digest layer.
+ *
  * Module:  library/md.c
  * Caller:
  *
@@ -232,7 +307,11 @@
  */
 #define POLARSSL_MD_C
 
-/*
+/**
+ * \def POLARSSL_MD2_C
+ *
+ * Enable the MD2 hash algorithm
+ *
  * Module:  library/md2.c
  * Caller:  library/x509parse.c
  *
@@ -241,7 +320,11 @@
 #define POLARSSL_MD2_C
  */
 
-/*
+/**
+ * \def POLARSSL_MD4_C
+ *
+ * Enable the MD4 hash algorithm
+ *
  * Module:  library/md4.c
  * Caller:  library/x509parse.c
  *
@@ -250,7 +333,11 @@
 #define POLARSSL_MD4_C
  */
 
-/*
+/**
+ * \def POLARSSL_MD5_C
+ *
+ * Enable the MD5 hash algorithm
+ *
  * Module:  library/md5.c
  * Caller:  library/ssl_tls.c
  *          library/x509parse.c
@@ -259,7 +346,11 @@
  */
 #define POLARSSL_MD5_C
 
-/*
+/**
+ * \def POLARSSL_NET_C
+ *
+ * Enable the TCP/IP networking routines.
+ *
  * Module:  library/net.c
  * Caller:
  *
@@ -267,7 +358,11 @@
  */
 #define POLARSSL_NET_C
 
-/*
+/**
+ * \def POLARSSL_PADLOCK_C
+ *
+ * Enable VIA Padlock support on x86.
+ *
  * Module:  library/padlock.c
  * Caller:  library/aes.c
  *
@@ -275,7 +370,11 @@
  */
 #define POLARSSL_PADLOCK_C
 
-/*
+/**
+ * \def POLARSSL_RSA_C
+ *
+ * Enable the RSA public-key cryptosystem.
+ *
  * Module:  library/rsa.c
  * Caller:  library/ssl_cli.c
  *          library/ssl_srv.c
@@ -286,7 +385,11 @@
  */
 #define POLARSSL_RSA_C
 
-/*
+/**
+ * \def POLARSSL_SHA1_C
+ *
+ * Enable the SHA1 cryptographic hash algorithm.
+ *
  * Module:  library/sha1.c
  * Caller:  library/ssl_cli.c
  *          library/ssl_srv.c
@@ -297,23 +400,37 @@
  */
 #define POLARSSL_SHA1_C
 
-/*
+/**
+ * \def POLARSSL_SHA2_C
+ *
+ * Enable the SHA-224 and SHA-256 cryptographic hash algorithms.
+ *
  * Module:  library/sha2.c
- * Caller:
+ * Caller:  library/md_wrap.c
+ *          library/x509parse.c
  *
  * This module adds support for SHA-224 and SHA-256.
  */
 #define POLARSSL_SHA2_C
 
-/*
+/**
+ * \def POLARSSL_SHA4_C
+ *
+ * Enable the SHA-384 and SHA-512 cryptographic hash algorithms.
+ *
  * Module:  library/sha4.c
- * Caller:
+ * Caller:  library/md_wrap.c
+ *          library/x509parse.c
  *
  * This module adds support for SHA-384 and SHA-512.
  */
 #define POLARSSL_SHA4_C
 
-/*
+/**
+ * \def POLARSSL_SSL_CLI_C
+ *
+ * Enable the SSL/TLS client code.
+ *
  * Module:  library/ssl_cli.c
  * Caller:
  *
@@ -322,6 +439,10 @@
 #define POLARSSL_SSL_CLI_C
 
 /*
+ * \def POLARSSL_SSL_SRV_C
+ *
+ * Enable the SSL/TLS server code.
+ *
  * Module:  library/ssl_srv.c
  * Caller:
  *
@@ -329,7 +450,11 @@
  */
 #define POLARSSL_SSL_SRV_C
 
-/*
+/**
+ * \def POLARSSL_SSL_TLS_C
+ *
+ * Enable the generic SSL/RLS code.
+ *
  * Module:  library/ssl_tls.c
  * Caller:  library/ssl_cli.c
  *          library/ssl_srv.c
@@ -338,7 +463,11 @@
  */
 #define POLARSSL_SSL_TLS_C
 
-/*
+/**
+ * \def POLARSSL_PKCS11_C
+ *
+ * Enable support for PKCS#11 smartcard support.
+ *
  * Module:  library/ssl_srv.c
  * Caller:  library/ssl_cli.c
  *          library/ssl_srv.c
@@ -348,7 +477,11 @@
 #define POLARSSL_PKCS11_C
  */
 
-/*
+/**
+ * \def POLARSSL_TIMING_C
+ *
+ * Enable the portable timing interface.
+ *
  * Module:  library/timing.c
  * Caller:  library/havege.c
  *
@@ -356,14 +489,22 @@
  */
 #define POLARSSL_TIMING_C
 
-/*
+/**
+ * \def POLARSSL_VERSION_C
+ *
+ * Enable run-time version information.
+ *
  * Module:  library/version.c
  *
  * This module provides run-time version information.
  */
 #define POLARSSL_VERSION_C
 
-/*
+/**
+ * \def POLARSSL_X509_PARSE_C
+ *
+ * Enable X.509 certificate parsing.
+ *
  * Module:  library/x509parse.c
  * Caller:  library/ssl_cli.c
  *          library/ssl_srv.c
@@ -373,15 +514,11 @@
  */
 #define POLARSSL_X509_PARSE_C
 
-/*
- * Module:  library/x509_write.c
- * Caller:
+/**
+ * \def POLARSSL_XTEA_C
  *
- * This module is required for X.509 certificate writing.
- */
-#define POLARSSL_X509_WRITE_C
-
-/*
+ * Enable the XTEA block cipher.
+ *
  * Module:  library/xtea.c
  * Caller:
  */
diff --git a/include/polarssl/des.h b/include/polarssl/des.h
index 0542329..0d3493c 100644
--- a/include/polarssl/des.h
+++ b/include/polarssl/des.h
@@ -1,7 +1,7 @@
 /**
  * \file des.h
  *
- * \brief Debug functions
+ * \brief DES block cipher
  *
  *  Copyright (C) 2006-2010, Brainspark B.V.
  *
diff --git a/include/polarssl/dhm.h b/include/polarssl/dhm.h
index ad0795f..4206b88 100644
--- a/include/polarssl/dhm.h
+++ b/include/polarssl/dhm.h
@@ -29,6 +29,9 @@
 
 #include "polarssl/bignum.h"
 
+/*
+ * DHM Error codes
+ */
 #define POLARSSL_ERR_DHM_BAD_INPUT_DATA                    0x0480
 #define POLARSSL_ERR_DHM_READ_PARAMS_FAILED                0x0490
 #define POLARSSL_ERR_DHM_MAKE_PARAMS_FAILED                0x04A0
@@ -36,6 +39,9 @@
 #define POLARSSL_ERR_DHM_MAKE_PUBLIC_FAILED                0x04C0
 #define POLARSSL_ERR_DHM_CALC_SECRET_FAILED                0x04D0
 
+/**
+ * \brief          DHM context structure
+ */
 typedef struct
 {
     int len;    /*!<  size(P) in chars  */
diff --git a/include/polarssl/havege.h b/include/polarssl/havege.h
index a974462..4be0e59 100644
--- a/include/polarssl/havege.h
+++ b/include/polarssl/havege.h
@@ -1,7 +1,7 @@
 /**
  * \file havege.h
  *
- * \brief Diffie-Hellman-Merkle key exchange
+ * \brief HAVEGE: HArdware Volatile Entropy Gathering and Expansion
  *
  *  Copyright (C) 2006-2010, Brainspark B.V.
  *
diff --git a/include/polarssl/md.h b/include/polarssl/md.h
index 76c480c..1ee742f 100644
--- a/include/polarssl/md.h
+++ b/include/polarssl/md.h
@@ -167,8 +167,7 @@
  * \brief          Free the message-specific context of ctx. Freeing ctx itself
  *                 remains the responsibility of the caller.
  *
- * \param ctx      Free the -specific context
- * \param output   Generic message digest checksum result
+ * \param ctx      Free the message-specific context
  *
  * \returns        0 on success, 1 if parameter verification fails.
  */
diff --git a/include/polarssl/sha2.h b/include/polarssl/sha2.h
index 813a96c..5e2d907 100644
--- a/include/polarssl/sha2.h
+++ b/include/polarssl/sha2.h
@@ -1,7 +1,7 @@
 /**
  * \file sha2.h
  *
- * \brief SHA-256 cryptographic hash function
+ * \brief SHA-224 and SHA-256 cryptographic hash function
  *
  *  Copyright (C) 2006-2010, Brainspark B.V.
  *
diff --git a/include/polarssl/sha4.h b/include/polarssl/sha4.h
index ebf2d45..5f980b9 100644
--- a/include/polarssl/sha4.h
+++ b/include/polarssl/sha4.h
@@ -1,7 +1,7 @@
 /**
  * \file sha4.h
  *
- * \brief SHA-384/512 cryptographic hash function
+ * \brief SHA-384 and SHA-512 cryptographic hash function
  *
  *  Copyright (C) 2006-2010, Brainspark B.V.
  *
diff --git a/include/polarssl/version.h b/include/polarssl/version.h
index a123edc..5dd2875 100644
--- a/include/polarssl/version.h
+++ b/include/polarssl/version.h
@@ -1,6 +1,8 @@
 /**
  * \file version.h
  *
+ * \brief Run-time version information
+ *
  *  Copyright (C) 2006-2010, Brainspark B.V.
  *
  *  This file is part of PolarSSL (http://www.polarssl.org)
@@ -21,7 +23,8 @@
  *  You should have received a copy of the GNU General Public License along
  *  with this program; if not, write to the Free Software Foundation, Inc.,
  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
+ */
+/*
  * This set of compile-time defines and run-time variables can be used to
  * determine the version number of the PolarSSL library used.
  */
diff --git a/include/polarssl/x509.h b/include/polarssl/x509.h
index 511641f..4305074 100644
--- a/include/polarssl/x509.h
+++ b/include/polarssl/x509.h
@@ -144,7 +144,7 @@
 #define X509_ISSUER                  0x01
 #define X509_SUBJECT                 0x02
 
-/** Returns the size of the binary string, without the trailing \0 */
+/** Returns the size of the binary string, without the trailing \\0 */
 #define OID_SIZE(x) (sizeof(x) - 1)
 
 #define OID_X520                "\x55\x04"
@@ -574,7 +574,7 @@
  *
  * \return         0 if successful, or a specific X509 error code
  */
-int x509parse_dhmfile( dhm_context *rsa, const char *path );
+int x509parse_dhmfile( dhm_context *dhm, const char *path );
 
 /** \} name Functions to read in DHM parameters, a certificate, CRL or private RSA key */
 
