--- libmodbus-3.0.3/src/modbus.c 2012-05-19 23:54:16.000000000 +0200 +++ libmodbus-3.0.3/src/modbus.c 2012-11-04 16:03:58.000000000 +0100 @@ -1403,13 +1403,8 @@ int modbus_set_error_recovery(modbus_t *ctx, modbus_error_recovery_mode error_recovery) { - if (error_recovery >= 0) { - ctx->error_recovery = (uint8_t) error_recovery; - } else { - errno = EINVAL; - return -1; - } - + /* The type of modbus_error_recovery_mode is unsigned enum */ + ctx->error_recovery = (uint8_t) error_recovery; return 0; }