diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.java
index b8963e2..23af720 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.java
@@ -39,7 +39,6 @@
     String intralineBg();
     String diff();
     String activeLine();
-    String hideNumber();
     String range();
     String rangeHighlight();
     String showtabs();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.ui.xml
index 18d497c..2579cb8 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.ui.xml
@@ -94,12 +94,6 @@
       height: 1.11em;
       cursor: pointer;
     }
-    .hideNumber .CodeMirror-linenumber {
-      color: transparent;
-      background-color: #def;
-      padding-right: 20px;
-      height: 1.3em;
-    }
     .difftable .CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor {
       opacity: 0.8;
       z-index: 2;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java
index e0c0cd4..9897f9a 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide2.java
@@ -626,7 +626,8 @@
     manager.insert(box, index);
     Configuration config = Configuration.create()
       .set("coverGutter", true)
-      .set("insertAt", index);
+      .set("insertAt", index)
+      .set("noHScroll", true);
     LineWidget boxWidget = cm.addLineWidget(line, box.getElement(), config);
     box.setPaddingManager(manager);
     box.setSelfWidgetWrapper(new PaddingWidgetWrapper(boxWidget, box.getElement()));
@@ -793,29 +794,25 @@
 
   private SkipBar renderSkipHelper(CodeMirror cm, SkippedLine skip) {
     int size = skip.getSize();
-    int markStart = cm == cmA ? skip.getStartA() - 1 : skip.getStartB() - 1;
+    int markStart = cm == cmA ? skip.getStartA() : skip.getStartB();
     int markEnd = markStart + size;
     SkipBar bar = new SkipBar(cm);
     diffTable.add(bar);
-    /**
-     * Due to CodeMirror limitation, there's no way to make the first
-     * line disappear completely, and CodeMirror doesn't like manually
-     * setting the display of a line to "none". The workaround here uses
-     * inline widget for the first line and regular line widgets for others.
-     */
-    Configuration markerConfig;
-    if (markStart == -1) {
-      markerConfig = Configuration.create()
+    Configuration markerConfig = Configuration.create()
+        .set("collapsed", true)
         .set("inclusiveLeft", true)
-        .set("inclusiveRight", true)
-        .set("replacedWith", bar.getElement());
-      cm.addLineClass(0, LineClassWhere.WRAP, DiffTable.style.hideNumber());
+        .set("inclusiveRight", true);
+    Configuration lineWidgetConfig = Configuration.create()
+        .set("coverGutter", true)
+        .set("noHScroll", true);
+    if (markStart == 0) {
+      bar.setWidget(cm.addLineWidget(
+          markEnd + 1, bar.getElement(), lineWidgetConfig.set("above", true)));
     } else {
-      markerConfig = Configuration.create().set("collapsed", true);
-      Configuration config = Configuration.create().set("coverGutter", true);
-      bar.setWidget(cm.addLineWidget(markStart, bar.getElement(), config));
+      bar.setWidget(cm.addLineWidget(
+          markStart - 1, bar.getElement(), lineWidgetConfig));
     }
-    bar.setMarker(cm.markText(CodeMirror.pos(markStart),
+    bar.setMarker(cm.markText(CodeMirror.pos(markStart, 0),
         CodeMirror.pos(markEnd), markerConfig), size);
     return bar;
   }
@@ -894,7 +891,8 @@
     div.getStyle().setHeight(height, unit);
     Configuration config = Configuration.create()
         .set("coverGutter", true)
-        .set("above", line == -1);
+        .set("above", line == -1)
+        .set("noHScroll", true);
     if (index != null) {
       config = config.set("insertAt", index);
     }
@@ -1117,10 +1115,9 @@
         CodeMirror targetCm = getCmFromSide(target.getSide());
         targetCm.setCursor(LineCharacter.create(target.getStart()));
         targetCm.focus();
-        targetCm.scrollToY(Math.max(
-            0,
+        targetCm.scrollToY(
             targetCm.heightAtLine(target.getStart(), "local") -
-            0.5 * cmB.getScrollbarV().getClientHeight()));
+            0.5 * cmB.getScrollbarV().getClientHeight());
       }
     };
   }
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SidePanel.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SidePanel.java
index 52bb003..fba8f19 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SidePanel.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SidePanel.java
@@ -125,7 +125,7 @@
       @Override
       public void onClick(ClickEvent event) {
         cm.setCursor(LineCharacter.create(line));
-        cm.scrollToY(Math.max(0, height - 0.5 * scrollbarHeight));
+        cm.scrollToY(height - 0.5 * scrollbarHeight);
         cm.focus();
       }
     });
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SkipBar.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SkipBar.java
index 6d63e63..cc8ac2e 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SkipBar.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SkipBar.java
@@ -30,7 +30,6 @@
 import com.google.gwt.user.client.ui.HTMLPanel;
 
 import net.codemirror.lib.CodeMirror;
-import net.codemirror.lib.CodeMirror.LineClassWhere;
 import net.codemirror.lib.Configuration;
 import net.codemirror.lib.LineWidget;
 import net.codemirror.lib.TextMarker;
@@ -42,8 +41,10 @@
   private static final Binder uiBinder = GWT.create(Binder.class);
   private static final int NUM_ROWS_TO_EXPAND = 10;
   private static final int UP_DOWN_THRESHOLD = 30;
-  private static final Configuration COLLAPSED =
-      Configuration.create().set("collapsed", true);
+  private static final Configuration MARKER_CONFIG = Configuration.create()
+      .set("collapsed", true)
+      .set("inclusiveLeft", true)
+      .set("inclusiveRight", true);
 
   private LineWidget widget;
 
@@ -124,11 +125,8 @@
 
   private void clearMarkerAndWidget() {
     marker.clear();
-    if (widget != null) {
-      widget.clear();
-    } else {
-      cm.removeLineClass(0, LineClassWhere.WRAP, DiffTable.style.hideNumber());
-    }
+    assert (widget != null);
+    widget.clear();
   }
 
   private void expandAll() {
@@ -143,10 +141,12 @@
     int newStart = oldStart + NUM_ROWS_TO_EXPAND;
     int end = fromTo.getTo().getLine();
     clearMarkerAndWidget();
-    marker = cm.markText(CodeMirror.pos(newStart), CodeMirror.pos(end), COLLAPSED);
-    Configuration config = Configuration.create().set("coverGutter", true);
-    LineWidget newWidget = cm.addLineWidget(newStart, getElement(), config);
-    setWidget(newWidget);
+    marker = cm.markText(
+        CodeMirror.pos(newStart, 0), CodeMirror.pos(end), MARKER_CONFIG);
+    Configuration config = Configuration.create()
+        .set("coverGutter", true)
+        .set("noHScroll", true);
+    setWidget(cm.addLineWidget(newStart - 1, getElement(), config));
     updateSkipNum();
     cm.focus();
   }
@@ -157,17 +157,15 @@
     int oldEnd = fromTo.getTo().getLine();
     int newEnd = oldEnd - NUM_ROWS_TO_EXPAND;
     marker.clear();
-    if (widget == null) { // First line workaround
-      marker = cm.markText(CodeMirror.pos(-1),
-          CodeMirror.pos(newEnd),
-          Configuration.create()
-            .set("inclusiveLeft", true)
-            .set("inclusiveRight", true)
-            .set("replacedWith", getElement()));
-    } else {
-      marker = cm.markText(CodeMirror.pos(start),
-          CodeMirror.pos(newEnd),
-          COLLAPSED);
+    marker = cm.markText(
+        CodeMirror.pos(start, 0), CodeMirror.pos(newEnd), MARKER_CONFIG);
+    if (start == 0) { // First line workaround
+      Configuration config = Configuration.create()
+          .set("coverGutter", true)
+          .set("noHScroll", true)
+          .set("above", true);
+      widget.clear();
+      setWidget(cm.addLineWidget(newEnd + 1, getElement(), config));
     }
     updateSkipNum();
     cm.focus();
diff --git a/lib/codemirror/BUCK b/lib/codemirror/BUCK
index b381fe2..fcb6e92 100644
--- a/lib/codemirror/BUCK
+++ b/lib/codemirror/BUCK
@@ -1,8 +1,8 @@
 include_defs('//lib/maven.defs')
 include_defs('//lib/codemirror/cm3.defs')
 
-VERSION = '2d51b31fa7'
-SHA1 = '459bc0b701f7550a7751ea43ae33672195c7d1e0'
+VERSION = 'a31c335e'
+SHA1 = '40fcf309c8df4228f94d53e5665c2b6588819a2d'
 URL = GERRIT + 'net/codemirror/codemirror-%s.zip' % VERSION
 
 ZIP = 'codemirror-%s.zip' % VERSION
