                 // mark the read bp where a deletion begins
                 if (!negative_strand)
                 {
+                    ctx.cigar.is_deletion[idx.read_start + current_bp_idx - 1] = 1;
+                } else {
                     ctx.cigar.is_deletion[idx.read_start + current_bp_idx] = 1;
-                } else {
-                    ctx.cigar.is_deletion[idx.read_start + current_bp_idx + 1] = 1;
                 }
 
                 num_errors++;


                if (!negative_strand)
                {
                    ctx.cigar.is_insertion[idx.read_start + current_bp_idx] = 1;
                } else {
                    ctx.cigar.is_insertion[idx.read_start + current_bp_idx + batch.cigars[event].len - 1] = 1;
                }

        uint16 bp_offset = ctx.cigar_event_read_coordinates[i];
        if (bp_offset == uint16(-1))
        {
            printf("  - ");
        } else {
            printf("% 3d ", context->active_location_list[idx.read_start + bp_offset] ? 1 : 0);
        }
