diff --git a/fast-array.h b/fast-array.h
index 7edb19b0eb1064b64615887a157c6df26b72b19c..b9e00905267bd6ea52599e738a42e55da06907fc 100644
--- a/fast-array.h
+++ b/fast-array.h
@@ -17,13 +17,11 @@ struct Mapping {
   inline T operator[] (size_t i) const { return data[i]; }
   inline void assign(size_t i, T val) { data[i] = val; }
 
-  Mapping& combine(T alpha, T beta, const Mapping& b) {
-    Mapping &a = *this;
-    size_t size = a.size();
-    for (size_t i = 0; i < size; i++)
-      data[i] = Ring::plus(Ring::multiply(alpha, a.data[i]),
-                           Ring::multiply(beta, b.data[i]));
-    return a;
+  Mapping& combine(T beta, const Mapping& b) {
+    size_t _size = size();
+    for (size_t i = 0; i < _size; i++)
+      data[i] = Ring::plus(data[i], Ring::multiply(beta, b.data[i]));
+    return *this;
   }
 };
 
diff --git a/group-connectivity.h b/group-connectivity.h
index 379e80aa71b7974191c02b5e80efd7d455b3c1db..f127f812045e0c94125770550fabf0d99b04a076 100644
--- a/group-connectivity.h
+++ b/group-connectivity.h
@@ -91,7 +91,7 @@ struct Tester : public AbstractTester {
   Mapping& cannonize(Mapping& map) {
     for (const auto &i : nonClassEdges) {
       if (map[i.first] != Ring::zero)
-        map.combine(Ring::one, map[i.first], i.second);
+        map.combine(map[i.first], i.second);
     }
 
     return map;