diff --git a/src/CountMinSketch.cpp b/src/CountMinSketch.cpp
index d164eb65eb2c8ff1880f44ec29f081a2ff261f0e..349d351ca0dd20983abc33eb4d169f368d32b6a6 100644
--- a/src/CountMinSketch.cpp
+++ b/src/CountMinSketch.cpp
@@ -61,17 +61,17 @@ const int CountMinSketch::Pi_js[500]={2147469629, 2147469637, 2147469659, 214746
 
 
 
-void CountMinSketch::addKMer(unsigned long val) {
-    int h,j;
+void CountMinSketch::addKMer(const unsigned long& val1,const unsigned long& val2) {
+    int h1,h2,h,j;
     // short cnt;
     unsigned char cnt;
     //unsigned short min=ushortmask;
     for (j=0;j<lambda;j++) {
-        h=hash64to32(val,j);
+        h1=hash64to32(val1,j);
+        h2=hash64to32(val2,j);
+        (h1>h2)?h=h1:h=h2;
         cnt=cms_lambda_array[j] [h];
         cnt++;
-        //if (cnt<min) min=cnt;
-        // cms_lambda_array[j] [h]=(cnt & ushortmask);
         cms_lambda_array[j] [h]=(cnt & ubytemask);
     }
 }
@@ -102,7 +102,8 @@ int CountMinSketch::addRead(const readNumericValues& read_val) {
     if (keep_r) {
         readNumericValues::const_iterator it;
         for (it=read_val.begin();it!=read_val.end();it++) {
-            addKMer(*it);
+            /* Here, note that k-mer go by pair : 1rst 1 is k_mer and next one is its reverse complement*/
+            addKMer(*it,*(++it));
         }
     }
     return keep_r;
diff --git a/src/CountMinSketch.h b/src/CountMinSketch.h
index a20272c7c355416acd702935383165c8e3055ac1..491a9f18353c211faa185c4c2a3fb97e19d0e2fe 100644
--- a/src/CountMinSketch.h
+++ b/src/CountMinSketch.h
@@ -64,7 +64,7 @@ class CountMinSketch {
 
 
     // std::map<int,int> getIthArray(int); // utility method provided for testing only.
-    void addKMer(unsigned long); // inline? TODO: see later if it can help us gain time.
+    void addKMer(const unsigned long&,const unsigned long&); // inline? TODO: see later if it can help us gain time.
 
     int isRCovBelowThres(const readNumericValues& read_val, const int& threshold);
 
diff --git a/src/unit_test_cms.cpp b/src/unit_test_cms.cpp
index 99242aa8b2c2257792d7a95f145ed18cf6b4c7b5..42a136b3246130d0fb13a097a001302bd3c9389b 100644
--- a/src/unit_test_cms.cpp
+++ b/src/unit_test_cms.cpp
@@ -36,7 +36,7 @@ void test_CMS(int lambda,int kappa,int kappa_prime) {
     int rej_expected=0;
     int ret;
     for (i=0;i<num;i++) {
-        cms.addKMer(num);
+        cms.addKMer(num,num-1);
     }
     // Now, check that our k-mer is present in the CMS.
     int min=cms.getEstimatedNbOcc(num);