--- gedit-2.14.3.orig/gedit/gedit-tab.c
+++ gedit-2.14.3/gedit/gedit-tab.c
@@ -896,6 +896,7 @@ document_loaded (GeditDocument *document
 	set_message_area (tab, NULL);
 
 	uri = gedit_document_get_uri (document);
+	gedit_view_scroll_to_cursor(gedit_tab_get_view(tab));
 
 	if (error != NULL)
 	{
@@ -1796,6 +1797,7 @@ _gedit_tab_revert (GeditTab *tab)
 {
 	GeditDocument *doc;
 	gchar *uri;
+	GtkTextIter iter;
 
 	g_return_if_fail (GEDIT_IS_TAB (tab));
 	g_return_if_fail (tab->priv->state == GEDIT_TAB_STATE_NORMAL);
@@ -1808,7 +1810,12 @@ _gedit_tab_revert (GeditTab *tab)
 	uri = gedit_document_get_uri (doc);
 	g_return_if_fail (uri != NULL);
 
-	tab->priv->tmp_line_pos = 0;
+	gtk_text_buffer_get_iter_at_mark (
+		GTK_TEXT_BUFFER (doc),
+		&iter,
+		gtk_text_buffer_get_insert (GTK_TEXT_BUFFER(doc)));
+
+	tab->priv->tmp_line_pos = gtk_text_iter_get_line(&iter) + 1;
 	tab->priv->tmp_encoding = gedit_document_get_encoding (doc);
 
 	if (tab->priv->auto_save_timeout > 0)
@@ -1817,7 +1824,7 @@ _gedit_tab_revert (GeditTab *tab)
 	gedit_document_load (doc,
 			     uri,
 			     tab->priv->tmp_encoding,
-			     0,
+			     tab->priv->tmp_line_pos,
 			     FALSE);
 
 	g_free (uri);
