diff --git a/javascript/src/utilities/signingUtilities.js b/javascript/src/utilities/signingUtilities.js
index db47ed62ed7c1c3fd455405cd95092a84a7129ff..2fa2064cb262f70771a965f419cfc7e51ede8c19 100644
--- a/javascript/src/utilities/signingUtilities.js
+++ b/javascript/src/utilities/signingUtilities.js
@@ -124,8 +124,28 @@ function generateKeys(algorithms) {
   return crypto.generateKey(algorithm.algorithm, true, algorithm.usages);
 }
 
+function fixPkijsRDN() {
+  pkijs.RelativeDistinguishedNames.prototype.toSchema = function () {
+    //region Decode stored TBS value
+    if (this.valueBeforeDecode.byteLength === 0) // No stored encoded array, create "from scratch"
+    {
+      return (new asn1js.Sequence({
+        value: Array.from(this.typesAndValues, element => new asn1js.Set({value: [element.toSchema()]}))
+      }));
+    }
+
+    const asn1 = asn1js.fromBER(this.valueBeforeDecode);
+    //endregion
+
+    //region Construct and return new ASN.1 schema for this object
+    return asn1.result;
+    //endregion
+  };
+}
+
 //*********************************************************************************
 function createCertificate(certData, issuerData = null) {
+
   if (typeof certData === "undefined") {
     return Promise.reject("No Certificate data provided");
   }
@@ -1252,3 +1272,6 @@ export const verifySMIME = (smimeString, rootCaPem) => {
     }, 50);
   });
 };
+
+//Initialization block
+fixPkijsRDN();