Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 3779)
+++ /CKEditor/trunk/CHANGES.html	(revision 3780)
@@ -68,4 +68,7 @@
 			including '&lt;object&gt;', '&lt;embed&gt;' and '&lt;param&gt;'.
 			</li>
+		<li><a href="http://dev.fckeditor.net/ticket/3759">#3759</a> : Fixed CKEDITOR.dom.element::scrollIntoView
+			logic bug which scroll even element is inside viewport.
+			</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/core/dom/element.js
===================================================================
--- /CKEditor/trunk/_source/core/dom/element.js	(revision 3779)
+++ /CKEditor/trunk/_source/core/dom/element.js	(revision 3780)
@@ -1224,10 +1224,12 @@
 			var elementPosition = this.getDocumentPosition();
 			offset += elementPosition.y;
-			// Scroll the window to the desired position, if not already visible.
+
+			// offset value might be out of range(nagative), fix it(#3692).
+			offset = offset < 0 ? 0 : offset;
+
+			// Scroll the window to the desired position, if not already visible(#3795).
 			var currentScroll = win.getScrollPosition().y;
-
-			// Though the computed offset value maybe out of range ( e.g.
-			// a negative value ), browser will try to scroll as much as possible. (#3692)
-			win.$.scrollTo( 0, offset > 0 ? offset : 0 );
+			if ( offset > currentScroll || offset < currentScroll - winHeight )
+				win.$.scrollTo( 0, offset );
 		},
 
