diff --git a/addon/merge/merge.js b/addon/merge/merge.js
index ed22b60024a6988125cab5761a2353d7b5a0fbc6..3e9df42fb7534ff0cc0bf2830c5f948eec813741 100644
--- a/addon/merge/merge.js
+++ b/addon/merge/merge.js
@@ -259,11 +259,13 @@
   function makeConnections(dv) {
     if (!dv.showDifferences) return;
 
-    var align = dv.mv.options.connect == "align";
+    var align = dv.mv.options.connect == "align", oldScrollEdit, oldScrollOrig;
     if (align) {
       if (!dv.orig.curOp) return dv.orig.operation(function() {
         makeConnections(dv);
       });
+      oldScrollEdit = dv.edit.getScrollInfo().top;
+      oldScrollOrig = dv.orig.getScrollInfo().top;
       for (var i = 0; i < dv.aligners.length; i++)
         dv.aligners[i].clear();
       dv.aligners.length = 0;
@@ -293,6 +295,8 @@
         dv.aligners.push(padBelow(dv.edit, 0, extraSpaceAbove.edit));
       if (extraSpaceAbove.orig)
         dv.aligners.push(padBelow(dv.orig, 0, extraSpaceAbove.orig));
+      dv.edit.scrollTo(null, oldScrollEdit);
+      dv.orig.scrollTo(null, oldScrollOrig);
     }
   }