diff --git a/ChangeLog b/ChangeLog
index e40b929..09c5b2f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -46,6 +46,9 @@
    * Support for receiving SSLv2 ClientHello is now disabled by default at
      compile time.
    * The default authmode for SSL/TLS clients is now REQUIRED.
+   * Support for RSA_ALT contexts in the PK layer is now optional. Since is is
+     enabled in the default configuration, this is only noticeable if using a
+     custom config.h
 
 Changes
    * Remove test program o_p_test, the script compat.sh does more.
diff --git a/include/mbedtls/config.h b/include/mbedtls/config.h
index b13790d..52cec1d 100644
--- a/include/mbedtls/config.h
+++ b/include/mbedtls/config.h
@@ -769,6 +769,15 @@
 //#define POLARSSL_MEMORY_BACKTRACE
 
 /**
+ * \def POLARSSL_PK_RSA_ALT_SUPPORT
+ *
+ * Support external private RSA keys (eg from a HSM) in the PK layer.
+ *
+ * Comment this macro to disable support for external private RSA keys.
+ */
+#define POLARSSL_PK_RSA_ALT_SUPPORT
+
+/**
  * \def POLARSSL_PKCS1_V15
  *
  * Enable support for PKCS#1 v1.5 encoding.
diff --git a/include/mbedtls/pk.h b/include/mbedtls/pk.h
index 8fda581..207d354 100644
--- a/include/mbedtls/pk.h
+++ b/include/mbedtls/pk.h
@@ -197,6 +197,7 @@
     void *              pk_ctx;     /**< Underlying public key context  */
 } pk_context;
 
+#if defined(POLARSSL_PK_RSA_ALT_SUPPORT)
 /**
  * \brief           Types for RSA-alt abstraction
  */
@@ -208,6 +209,7 @@
                     int mode, md_type_t md_alg, unsigned int hashlen,
                     const unsigned char *hash, unsigned char *sig );
 typedef size_t (*pk_rsa_alt_key_len_func)( void *ctx );
+#endif /* POLARSSL_PK_RSA_ALT_SUPPORT */
 
 /**
  * \brief           Return information associated with the given PK type
@@ -244,6 +246,7 @@
  */
 int pk_init_ctx( pk_context *ctx, const pk_info_t *info );
 
+#if defined(POLARSSL_PK_RSA_ALT_SUPPORT)
 /**
  * \brief           Initialize an RSA-alt context
  *
@@ -262,6 +265,7 @@
                          pk_rsa_alt_decrypt_func decrypt_func,
                          pk_rsa_alt_sign_func sign_func,
                          pk_rsa_alt_key_len_func key_len_func );
+#endif /* POLARSSL_PK_RSA_ALT_SUPPORT */
 
 /**
  * \brief           Get the size in bits of the underlying key
diff --git a/include/mbedtls/pk_wrap.h b/include/mbedtls/pk_wrap.h
index 3677250..7a7f4fa 100644
--- a/include/mbedtls/pk_wrap.h
+++ b/include/mbedtls/pk_wrap.h
@@ -33,6 +33,7 @@
 
 #include "pk.h"
 
+#if defined(POLARSSL_PK_RSA_ALT_SUPPORT)
 /* Container for RSA-alt */
 typedef struct
 {
@@ -41,6 +42,7 @@
     pk_rsa_alt_sign_func sign_func;
     pk_rsa_alt_key_len_func key_len_func;
 } rsa_alt_context;
+#endif
 
 #if defined(POLARSSL_RSA_C)
 extern const pk_info_t rsa_info;
@@ -55,6 +57,8 @@
 extern const pk_info_t ecdsa_info;
 #endif
 
+#if defined(POLARSSL_PK_RSA_ALT_SUPPORT)
 extern const pk_info_t rsa_alt_info;
+#endif
 
 #endif /* POLARSSL_PK_WRAP_H */
diff --git a/library/pk.c b/library/pk.c
index f083b86..d147302 100644
--- a/library/pk.c
+++ b/library/pk.c
@@ -112,6 +112,7 @@
     return( 0 );
 }
 
+#if defined(POLARSSL_PK_RSA_ALT_SUPPORT)
 /*
  * Initialize an RSA-alt context
  */
@@ -140,6 +141,7 @@
 
     return( 0 );
 }
+#endif /* POLARSSL_PK_RSA_ALT_SUPPORT */
 
 /*
  * Tell if a PK can do the operations of the given type
diff --git a/library/pk_wrap.c b/library/pk_wrap.c
index d6dea12..994320f 100644
--- a/library/pk_wrap.c
+++ b/library/pk_wrap.c
@@ -50,10 +50,12 @@
 #define polarssl_free       free
 #endif
 
+#if defined(POLARSSL_PK_RSA_ALT_SUPPORT)
 /* Implementation that should never be optimized out by the compiler */
 static void polarssl_zeroize( void *v, size_t n ) {
     volatile unsigned char *p = v; while( n-- ) *p++ = 0;
 }
+#endif
 
 #if defined(POLARSSL_RSA_C)
 static int rsa_can_do( pk_type_t type )
@@ -377,6 +379,7 @@
 };
 #endif /* POLARSSL_ECDSA_C */
 
+#if defined(POLARSSL_PK_RSA_ALT_SUPPORT)
 /*
  * Support for alternative RSA-private implementations
  */
@@ -488,4 +491,6 @@
     NULL,
 };
 
+#endif /* POLARSSL_PK_RSA_ALT_SUPPORT */
+
 #endif /* POLARSSL_PK_C */
diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function
index d82ab2a..3d0df67 100644
--- a/tests/suites/test_suite_pk.function
+++ b/tests/suites/test_suite_pk.function
@@ -98,7 +98,7 @@
 
     TEST_ASSERT( pk_check_pair( &pub, &prv ) == ret );
 
-#if defined(POLARSSL_RSA_C)
+#if defined(POLARSSL_RSA_C) && defined(POLARSSL_PK_RSA_ALT_SUPPORT)
     if( pk_get_type( &prv ) == POLARSSL_PK_RSA )
     {
         TEST_ASSERT( pk_init_ctx_rsa_alt( &alt, pk_rsa( prv ),
@@ -414,7 +414,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE depends_on:POLARSSL_RSA_C */
+/* BEGIN_CASE depends_on:POLARSSL_RSA_C:POLARSSL_PK_RSA_ALT_SUPPORT */
 void pk_rsa_alt( )
 {
     /*
