diff --git a/querier.go b/querier.go
index <HASH>..<HASH> 100644
--- a/querier.go
+++ b/querier.go
@@ -413,12 +413,15 @@ func (s *populatedChunkSeries) Next() bool {
 	for s.set.Next() {
 		lset, chks := s.set.At()
 
-		from := -1
-		for i, c := range chks {
-			if c.MaxTime < s.mint {
-				from = i
-				continue
+		for len(chks) > 0 {
+			if chks[0].MaxTime >= s.mint {
+				break
 			}
+			chks = chks[1:]
+		}
+
+		// Break out at the first chunk that has no overlap with mint, maxt.
+		for i, c := range chks {
 			if c.MinTime > s.maxt {
 				chks = chks[:i]
 				break
@@ -429,7 +432,6 @@ func (s *populatedChunkSeries) Next() bool {
 			}
 		}
 
-		chks = chks[from+1:]
 		if len(chks) == 0 {
 			continue
 		}
Simply loop away from using tracking variables.