diff --git a/src/libaevol/7/Dna_7.cpp b/src/libaevol/7/Dna_7.cpp index 814713e0545f7463fb41fa37433ef9fe22f3f238..6fb30c5d90808f65b7d42d88556be1667e85f778 100644 --- a/src/libaevol/7/Dna_7.cpp +++ b/src/libaevol/7/Dna_7.cpp @@ -273,7 +273,14 @@ Mutation* Dna_7::do_small_deletion(size_type pos, int16_t nb_del) { auto old_pos = pos; // Remove promoters containing at least one nucleotide from the sequence to delete - ann_chrsm_->promoter_list().remove_promoters_around(pos, Utils::mod(pos + nb_del, length_), length_); + auto end_del = size_type{0}; + #ifdef __EUKARYOTE + end_del = std::min(length(), pos + nb_del); + #else + end_del = Utils::mod(pos + nb_del, length()); + #endif + + ann_chrsm_->promoter_list().remove_promoters_around(pos, end_del, length()); // Do the deletion and update promoter list if (pos + nb_del <= length()) { // the deletion does not contain the origin of