updated for version 7.4.659
Problem:    When 'ruler' is set the preferred column is reset. (Issue 339)
Solution:   Don't set curswant when redrawing the status lines.
diff --git a/src/option.c b/src/option.c
index d9cfda0..6b3b00c 100644
--- a/src/option.c
+++ b/src/option.c
@@ -7193,7 +7193,7 @@
 #endif
 
     if (curwin->w_curswant != MAXCOL
-		     && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0)
+		     && (options[opt_idx].flags & (P_CURSWANT | P_RALL)) != 0)
 	curwin->w_set_curswant = TRUE;
 
 #ifdef FEAT_GUI
@@ -8203,7 +8203,7 @@
 
     comp_col();			    /* in case 'ruler' or 'showcmd' changed */
     if (curwin->w_curswant != MAXCOL
-		     && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0)
+		     && (options[opt_idx].flags & (P_CURSWANT | P_RALL)) != 0)
 	curwin->w_set_curswant = TRUE;
     check_redraw(options[opt_idx].flags);
 
@@ -8738,7 +8738,7 @@
 
     comp_col();			    /* in case 'columns' or 'ls' changed */
     if (curwin->w_curswant != MAXCOL
-		     && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0)
+		     && (options[opt_idx].flags & (P_CURSWANT | P_RALL)) != 0)
 	curwin->w_set_curswant = TRUE;
     check_redraw(options[opt_idx].flags);
 
diff --git a/src/version.c b/src/version.c
index 6e579e0..21a910d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    659,
+/**/
     658,
 /**/
     657,