diff --git a/library/x509write_crt.c b/library/x509write_crt.c
index c48c32b..d0aaa9f 100644
--- a/library/x509write_crt.c
+++ b/library/x509write_crt.c
@@ -303,18 +303,22 @@
     unsigned char *c = buf + sizeof(buf);
     int ret;
     size_t len = 0;
+    const mbedtls_asn1_sequence *last_ext = 0, *ext;
 
+    /* We need at least one extension: SEQUENCE SIZE (1..MAX) OF KeyPurposeId */
     if( exts == NULL )
         return( MBEDTLS_ERR_X509_BAD_INPUT_DATA );
 
-    while( exts != NULL )
+    /* Iterate over exts backwards, so we write them out in the requested order */
+    while( last_ext != exts )
     {
-        if( exts->buf.tag != MBEDTLS_ASN1_OID )
+        for( ext = exts; ext->next != last_ext; ext = ext->next ) {}
+        if( ext->buf.tag != MBEDTLS_ASN1_OID )
             return( MBEDTLS_ERR_X509_BAD_INPUT_DATA );
-        MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( &c, buf, exts->buf.p, exts->buf.len ) );
-        MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, exts->buf.len ) );
+        MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( &c, buf, ext->buf.p, ext->buf.len ) );
+        MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, ext->buf.len ) );
         MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_OID ) );
-        exts = exts->next;
+        last_ext = ext;
     }
 
     MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) );
