diff --git a/src/sort/sort.go b/src/sort/sort.go
index e980c295c32f61b8bafdf9761943ea71d5554989..63f8894a1967cd42ddfd757e52221143521aac24 100644
--- a/src/sort/sort.go
+++ b/src/sort/sort.go
@@ -359,30 +359,25 @@ func symMerge(data Interface, a, m, b int) {
 
 	mid := a + (b-a)/2
 	n := mid + m
-	start := 0
+	var start, r int
 	if m > mid {
 		start = n - b
-		r, p := mid, n-1
-		for start < r {
-			c := start + (r-start)/2
-			if !data.Less(p-c, c) {
-				start = c + 1
-			} else {
-				r = c
-			}
-		}
+		r = mid
 	} else {
 		start = a
-		r, p := m, n-1
-		for start < r {
-			c := start + (r-start)/2
-			if !data.Less(p-c, c) {
-				start = c + 1
-			} else {
-				r = c
-			}
+		r = m
+	}
+	p := n - 1
+
+	for start < r {
+		c := start + (r-start)/2
+		if !data.Less(p-c, c) {
+			start = c + 1
+		} else {
+			r = c
 		}
 	}
+
 	end := n - start
 	rotate(data, start, m, end)
 	symMerge(data, a, start, mid)