diff --git a/src/Cose.c b/src/Cose.c
index de37bcc..612f761 100644
--- a/src/Cose.c
+++ b/src/Cose.c
@@ -75,6 +75,7 @@
 #ifdef TAG_IN_ARRAY
 	cn_cbor * cbor;
 #endif // TAG_IN_ARRAY
+	cn_cbor_errback cbor_error;
 
 #ifdef USE_CBOR_CONTEXT
 	if (context != NULL) pobj->m_allocContext = *context;
@@ -116,6 +117,9 @@
 	CHECK_CONDITION((pobj->m_unprotectMap != NULL) && (pobj->m_unprotectMap->type == CN_CBOR_MAP), COSE_ERR_INVALID_PARAMETER);
 	pobj->m_ownUnprotectedMap = false;
 
+	pobj->m_dontSendMap = cn_cbor_map_create(CBOR_CONTEXT_PARAM_COMMA &cbor_error);
+	CHECK_CONDITION_CBOR(pobj->m_dontSendMap != NULL, cbor_error);
+
 	pobj->m_ownMsg = true;
 	pobj->m_refCount = 1;
 
diff --git a/src/Recipient.c b/src/Recipient.c
index e5cd61c..63b659b 100644
--- a/src/Recipient.c
+++ b/src/Recipient.c
@@ -673,10 +673,16 @@
 	context = &p->m_encrypt.m_message.m_allocContext;
 #endif
 
-	cn_Temp = cn_cbor_int_create(COSE_Algorithm_Direct, CBOR_CONTEXT_PARAM_COMMA &cbor_error);
-	CHECK_CONDITION_CBOR(cn_Temp != NULL, cbor_error);
-	if (!COSE_Recipient_map_put(hRecipient, COSE_Header_Algorithm, cn_Temp, COSE_UNPROTECT_ONLY, perr)) goto errorReturn;
-	cn_Temp = NULL;
+	cn_cbor * cnAlg = _COSE_map_get_int(&p->m_encrypt.m_message, COSE_Header_Algorithm, COSE_BOTH, perr);
+	if (cnAlg != NULL) {
+		CHECK_CONDITION(cnAlg->type == CN_CBOR_INT && cnAlg->v.sint == COSE_Algorithm_Direct, COSE_ERR_INVALID_PARAMETER);
+	}
+	else {
+		cn_Temp = cn_cbor_int_create(COSE_Algorithm_Direct, CBOR_CONTEXT_PARAM_COMMA &cbor_error);
+		CHECK_CONDITION_CBOR(cn_Temp != NULL, cbor_error);
+		if (!COSE_Recipient_map_put(hRecipient, COSE_Header_Algorithm, cn_Temp, COSE_UNPROTECT_ONLY, perr)) goto errorReturn;
+		cn_Temp = NULL;
+	}
 
 	if (cbKid > 0) {
 		pbTemp = (byte *)COSE_CALLOC(cbKid, 1, context);
