diff --git a/innobase/mtr/mtr0log.c b/innobase/mtr/mtr0log.c
index 417093134c35d7d6c0f5e146a5036ec37cd0d026..4f826f242e8b0d98a8c8a3b8bd97dd36b6b1a375 100644
--- a/innobase/mtr/mtr0log.c
+++ b/innobase/mtr/mtr0log.c
@@ -443,7 +443,8 @@ mlog_open_and_write_index(
 			type = dict_col_get_type(dict_field_get_col(field));
 			len = field->fixed_len;
 			ut_ad(len < 0x7fff);
-			if (len == 0 && dtype_get_len(type) > 255) {
+			if (len == 0 && (dtype_get_len(type) > 255
+				|| dtype_get_mtype(type) == DATA_BLOB)) {
 				/* variable-length field
 				with maximum length > 255 */
 				len = 0x7fff;