}
}
- err = _gpgme_engine_set_protocol (ctx->engine, ctx->sub_protocol);
- if (gpg_err_code (err) == GPG_ERR_NOT_IMPLEMENTED)
- err = 0;
- if (err)
- return err;
+ if (ctx->sub_protocol != GPGME_PROTOCOL_DEFAULT)
+ {
+ err = _gpgme_engine_set_protocol (ctx->engine, ctx->sub_protocol);
+ if (err)
+ return err;
+ }
if (type == 1 || (type == 2 && !ctx->io_cbs.add))
{