diff --git a/src/remote/protocol.cpp b/src/remote/protocol.cpp index 0cf080ee1e8..3109d697710 100644 --- a/src/remote/protocol.cpp +++ b/src/remote/protocol.cpp @@ -2509,7 +2509,8 @@ static bool_t xdr_blob_stream(RemoteXdr* xdrs, SSHORT statement_id, CSTRING* str flow.newBlob(*blobSize, *bpbSize); localStrm.curBpb.clear(); - if (!flow.bpbSize) + // A zero BLOB ID continues the preceding BLOB; keep its decoded kind. + if (!flow.bpbSize && (batchBlobId->gds_quad_high || batchBlobId->gds_quad_low)) localStrm.segmented = statement->rsr_batch_flags & (1 << Jrd::DsqlBatch::FLAG_DEFAULT_SEGMENTED); continue;