diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff-utils.ts b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff-utils.ts
index 5edd353..66ac065 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff-utils.ts
+++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff-utils.ts
@@ -40,7 +40,7 @@
 }
 
 export function isLongCommentRange(range: CommentRange): boolean {
-  return range.end_line - range.start_line > 5;
+  return range.end_line - range.start_line > 10;
 }
 
 export function getLineNumber(lineEl?: Element | null): LineNumber | null {
diff --git a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.js b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.js
index 6fef223..49eac72 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.js
+++ b/polygerrit-ui/app/elements/diff/gr-diff/gr-diff_test.js
@@ -558,7 +558,7 @@
     test('adds long range comment chip', async () => {
       const range = {
         start_line: 1,
-        end_line: 7,
+        end_line: 12,
         start_character: 0,
         end_character: 0,
       };
@@ -572,7 +572,7 @@
         a: [],
         b: [],
       }, {
-        ab: Array(8).fill('text'),
+        ab: Array(13).fill('text'),
       }];
       setupSampleDiff({content});
 
@@ -586,7 +586,7 @@
     test('no duplicate range chip for same thread', async () => {
       const range = {
         start_line: 1,
-        end_line: 7,
+        end_line: 12,
         start_character: 0,
         end_character: 0,
       };
@@ -604,7 +604,7 @@
         a: [],
         b: [],
       }, {
-        ab: Array(8).fill('text'),
+        ab: Array(13).fill('text'),
       }];
       setupSampleDiff({content});
 
diff --git a/polygerrit-ui/app/elements/diff/gr-ranged-comment-layer/gr-ranged-comment-layer_test.js b/polygerrit-ui/app/elements/diff/gr-ranged-comment-layer/gr-ranged-comment-layer_test.js
index fad717d..8279ab1 100644
--- a/polygerrit-ui/app/elements/diff/gr-ranged-comment-layer/gr-ranged-comment-layer_test.js
+++ b/polygerrit-ui/app/elements/diff/gr-ranged-comment-layer/gr-ranged-comment-layer_test.js
@@ -72,7 +72,7 @@
         side: 'right',
         range: {
           end_character: 1,
-          end_line: 70,
+          end_line: 71,
           start_character: 1,
           start_line: 60,
         },
@@ -314,10 +314,10 @@
     assert.equal(element._rangesMap.left[39][0].start, 0);
     assert.equal(element._rangesMap.left[39][0].end, 9);
 
-    // The right has four ranged comments: 10-12, 55-55, 60-70, 100-100
+    // The right has four ranged comments: 10-12, 55-55, 60-71, 100-100
     const rightKeys = [];
     for (let i = 10; i <= 12; i++) { rightKeys.push('' + i); }
-    for (let i = 60; i <= 70; i++) { rightKeys.push('' + i); }
+    for (let i = 60; i <= 71; i++) { rightKeys.push('' + i); }
     rightKeys.push('55', '100');
     assert.deepEqual(Object.keys(element._rangesMap.right).sort(),
         rightKeys.sort());
