rebase from development
diff --git a/include/polarssl/platform.h b/include/polarssl/platform.h
index dd7e558..3e76c30 100644
--- a/include/polarssl/platform.h
+++ b/include/polarssl/platform.h
@@ -80,6 +80,11 @@
  * The function pointers for malloc and free
  */
 #if defined(POLARSSL_PLATFORM_MEMORY)
+#if defined(POLARSSL_PLATFORM_FREE_MACRO) &&\
+	defined(POLARSSL_PLATFORM_MALLOC_MACRO)
+#define polarssl_free    POLARSSL_PLATFORM_FREE_MACRO
+#define polarssl_malloc    POLARSSL_PLATFORM_MALLOC_MACRO
+#else
 extern void * (*polarssl_malloc)( size_t len );
 extern void (*polarssl_free)( void *ptr );
 
@@ -93,22 +98,11 @@
  */
 int platform_set_malloc_free( void * (*malloc_func)( size_t ),
                               void (*free_func)( void * ) );
+#endif /* POLARSSL_PLATFORM_FREE_MACRO && POLARSSL_PLATFORM_MALLOC_MACRO */
 #else /* !POLARSSL_PLATFORM_MEMORY */
-#define polarssl_malloc     malloc
-#define polarssl_free       free
-#endif /* POLARSSL_PLATFORM_MEMORY */
-#else /* POLARSSL_PLATFORM_ENTROPY */
-#if defined(POLARSSL_PLATFORM_FREE_MACRO)
-#define polarssl_free    POLARSSL_PLATFORM_FREE_MACRO
-#else
 #define polarssl_free    free
-#endif /* POLARSSL_PLATFORM_FREE_MACRO */
-#if defined(POLARSSL_PLATFORM_MALLOC_MACRO)
-#define polarssl_malloc    POLARSSL_PLATFORM_MALLOC_MACRO
-#else
 #define polarssl_malloc    malloc
-#endif /* POLARSSL_PLATFORM_MALLOC_MACRO */
-#endif /* POLARSSL_PLATFORM_ENTROPY */
+#endif /* POLARSSL_PLATFORM_MEMORY && !POLARSSL_PLATFORM_{FREE,MALLOC}_MACRO */
 
 /*
  * The function pointers for fprintf