diff --git a/configs/config-picocoin.h b/configs/config-picocoin.h
index 7bd1cab..1a1cd28 100644
--- a/configs/config-picocoin.h
+++ b/configs/config-picocoin.h
@@ -43,8 +43,6 @@
 #define POLARSSL_MD5_C // ???
 #define POLARSSL_OID_C
 #define POLARSSL_PADLOCK_C
-#define POLARSSL_PEM_PARSE_C // ???
-#define POLARSSL_PEM_WRITE_C // ???
 #define POLARSSL_PK_C
 #define POLARSSL_PK_PARSE_C
 #define POLARSSL_PK_WRITE_C
diff --git a/programs/pkey/key_app_writer.c b/programs/pkey/key_app_writer.c
index c35736f..983b64e 100644
--- a/programs/pkey/key_app_writer.c
+++ b/programs/pkey/key_app_writer.c
@@ -63,8 +63,13 @@
 #define DFL_FILENAME            "keyfile.key"
 #define DFL_DEBUG_LEVEL         0
 #define DFL_OUTPUT_MODE         OUTPUT_MODE_NONE
+#if defined(POLARSSL_PEM_WRITE_C)
 #define DFL_OUTPUT_FILENAME     "keyfile.pem"
 #define DFL_OUTPUT_FORMAT       OUTPUT_FORMAT_PEM
+#else
+#define DFL_OUTPUT_FILENAME     "keyfile.der"
+#define DFL_OUTPUT_FORMAT       OUTPUT_FORMAT_DER
+#endif
 
 /*
  * global options
@@ -88,6 +93,7 @@
 
     memset(output_buf, 0, 16000);
 
+#if defined(POLARSSL_PEM_WRITE_C)
     if( opt.output_format == OUTPUT_FORMAT_PEM )
     {
         if( ( ret = pk_write_pubkey_pem( key, output_buf, 16000 ) ) != 0 )
@@ -96,6 +102,7 @@
         len = strlen( (char *) output_buf );
     }
     else
+#endif
     {
         if( ( ret = pk_write_pubkey_der( key, output_buf, 16000 ) ) < 0 )
             return( ret );
@@ -127,6 +134,8 @@
     size_t len = 0;
 
     memset(output_buf, 0, 16000);
+
+#if defined(POLARSSL_PEM_WRITE_C)
     if( opt.output_format == OUTPUT_FORMAT_PEM )
     {
         if( ( ret = pk_write_key_pem( key, output_buf, 16000 ) ) != 0 )
@@ -135,6 +144,7 @@
         len = strlen( (char *) output_buf );
     }
     else
+#endif
     {
         if( ( ret = pk_write_key_der( key, output_buf, 16000 ) ) < 0 )
             return( ret );
@@ -157,14 +167,23 @@
     return( 0 );
 }
 
+#if defined(POLARSSL_PEM_WRITE_C)
+#define USAGE_OUT \
+    "    output_file=%%s      default: keyfile.pem\n"   \
+    "    output_format=pem|der default: pem\n"
+#else
+#define USAGE_OUT \
+    "    output_file=%%s      default: keyfile.der\n"   \
+    "    output_format=der     default: der\n"
+#endif
+
 #define USAGE \
     "\n usage: key_app param=<>...\n"                   \
     "\n acceptable parameters:\n"                       \
     "    mode=private|public default: none\n"           \
     "    filename=%%s         default: keyfile.key\n"   \
     "    output_mode=private|public default: none\n"    \
-    "    output_file=%%s      default: keyfile.pem\n"   \
-    "    output_format=pem|der default: pem\n"          \
+    USAGE_OUT                                           \
     "\n"
 
 int main( int argc, char *argv[] )
@@ -222,9 +241,12 @@
         }
         else if( strcmp( p, "output_format" ) == 0 )
         {
+#if defined(POLARSSL_PEM_WRITE_C)
             if( strcmp( q, "pem" ) == 0 )
                 opt.output_format = OUTPUT_FORMAT_PEM;
-            else if( strcmp( q, "der" ) == 0 )
+            else
+#endif
+            if( strcmp( q, "der" ) == 0 )
                 opt.output_format = OUTPUT_FORMAT_DER;
             else
                 goto usage;
diff --git a/tests/suites/test_suite_pkwrite.function b/tests/suites/test_suite_pkwrite.function
index 2ea9409..e172315 100644
--- a/tests/suites/test_suite_pkwrite.function
+++ b/tests/suites/test_suite_pkwrite.function
@@ -9,7 +9,7 @@
  * END_DEPENDENCIES
  */
 
-/* BEGIN_CASE */
+/* BEGIN_CASE depends_on:POLARSSL_PEM_WRITE_C */
 void pk_write_pubkey_check( char *key_file )
 {
     pk_context key;
@@ -40,7 +40,7 @@
 }
 /* END_CASE */
 
-/* BEGIN_CASE */
+/* BEGIN_CASE depends_on:POLARSSL_PEM_WRITE_C */
 void pk_write_key_check( char *key_file )
 {
     pk_context key;
