         minx = max(minx - 2, 0); // Decrement by 2 as we always render two extra points to keep cubic flowing
         size = min(size + 2, entries.count); // Increment by 1 as we always render two extra points to keep cubic flowing
         
-        if (size - minx >= 4)
+        if (size - minx >= 2)
         {
             var prevDx: CGFloat = 0.0;
             var prevDy: CGFloat = 0.0;

            {
                cur = entries[entries.count - 1];
                prev = entries[entries.count - 2];
                prevPrev = entries[entries.count - 3];
                next = cur;
                
                prevDx = CGFloat(cur.xIndex - prevPrev.xIndex) * intensity;

            prevDx = CGFloat(next.xIndex - cur.xIndex) * intensity;
            prevDy = CGFloat(next.value - cur.value) * intensity;
            
            cur = entries[minx + 1];
            next = entries[minx + (size - minx > 2 ? 2 : 1)];
            curDx = CGFloat(next.xIndex - prev.xIndex) * intensity;
            curDy = CGFloat(next.value - prev.value) * intensity;
            
