diff --git a/comsoc/Copeland.go b/comsoc/Copeland.go
index 4387e0f172e498260e2d333a0988d8d07d7f078a..b99c415fc71cc8b77a72829f580366024ce58b9d 100644
--- a/comsoc/Copeland.go
+++ b/comsoc/Copeland.go
@@ -10,8 +10,8 @@ func CopelandSWF(p Profile) (count Count, err error) {
 	if err != nil {
 		return nil, err
 	}
-	for alt1 := 0; alt1 < len(p); alt1++ {
-		for alt2 := alt1 + 1; alt2 < len(p); alt2++ {
+	for alt1 := 1; alt1 <= len(alts); alt1++ {
+		for alt2 := alt1 + 1; alt2 <= len(alts); alt2++ {
 			score1, score2 := 0, 0
 			for _, pref := range p {
 				if isPref(Alternative(alt1), Alternative(alt2), pref) {
@@ -22,7 +22,9 @@ func CopelandSWF(p Profile) (count Count, err error) {
 			}
 			if score1 > score2 {
 				count[Alternative(alt1)]++
+				count[Alternative(alt2)]--
 			} else if score2 > score1 {
+				count[Alternative(alt1)]--
 				count[Alternative(alt2)]++
 			}
 		}