diff --git a/src/popins2_merge_and_set_mate.h b/src/popins2_merge_and_set_mate.h
index 9efd71bacedd88b403e046400aaaf64e32f01097..a11587f526ea222cf45ec55a1e676370593857bb 100644
--- a/src/popins2_merge_and_set_mate.h
+++ b/src/popins2_merge_and_set_mate.h
@@ -103,10 +103,12 @@ inline void readRecordAndCorrectRIds(BamAlignmentRecord & record, BamFileIn & st
 inline CharString iterSuffix(const CharString &PG_ID, const std::unordered_set<char*> &ids, const unsigned i){
     CharString ret;
     append(ret, PG_ID);
-    CharString suf = ".mH";
+    CharString inf = ".mH";
+    append(ret, inf);
+    char buffer[32];
+    itoa(i, buffer, 10);  // unsigned, char*, numerical base
+    CharString suf = buffer;
     append(ret, suf);
-    CharString iter = i;
-    append(ret, iter);
 
     if (ids.find(toCString(ret)) == ids.end())
         return ret;