diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index b1176a05707bdd3e738404e21bc35ba6ca632edc..418b64ca2ffb902836468b75a1137ca4b81ba304 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -3135,8 +3135,10 @@ These arguments can be used for all three commands:
 conceal						*conceal* *:syn-conceal*
 
 When the "conceal" argument is given, the item is marked as concealable.
-Whether or not it is actually concealed depends on the setting on the
-'conceallevel' option.
+Whether or not it is actually concealed depends on the value of the
+'conceallevel' option.  If 'modifiable' option is on, concealable items
+in the current line are always displayed unconcealed to be able to edit
+the line.
 
 concealends						*:syn-concealends*
 
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 240545770988eafd21c8b0c7a9c6aef811e843a1..06be30b89f3f872e263f52bea95f577b10459202 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1088,11 +1088,8 @@ Vim 7.3:
 - using NSIS 2.46: install on Windows 7 works, but no "Edit with Vim" menu.
    Use register_shell_extension()? (George Reilly, 2010 May 26)
    Ron's version: http://dev.ronware.org/p/vim/finfo?name=gvim.nsi
-- Patch for conceal feature and 'foldcolumn'. (Dominique Pelle, 2010 Jun 10,
-  second patch)
-  Also patch from Vince, 2010 Jun 15.  And another June 16.
+- Patch for conceal from Vince, 2010 Jun 15.  And another June 16.
   However: more generic patch on the way.
-- patch for conceal feature and 'modifiable'. (Dominique Pelle, 2010 Jun 9)
 - undofile: keep markers where the file was written/read, so that it's easy to
   go back to a saved version of the file:  ":earlier 1f" (f for file)?
   Also add ":earlier 1d" (d for day).
diff --git a/src/option.c b/src/option.c
index face9fde99250918827e3c8efa737281270fef92..fdca36f631affc0b5fd778708b07f2c523774b24 100644
--- a/src/option.c
+++ b/src/option.c
@@ -7334,12 +7334,21 @@ set_bool_option(opt_idx, varp, value, opt_flags)
 #endif
     }
 
-#ifdef FEAT_TITLE
-    /* when 'modifiable' is changed, redraw the window title */
+#if defined(FEAT_TITLE) || defined(FEAT_CONCEAL)
+    /* when 'modifiable' is changed, redraw the window title and
+     * update current line for concealable items */
     else if ((int *)varp == &curbuf->b_p_ma)
     {
+# ifdef FEAT_TITLE
 	redraw_titles();
+# endif
+# ifdef FEAT_CONCEAL
+	if (curwin->w_p_conceal)
+	    update_single_line(curwin, curwin->w_cursor.lnum);
+# endif
     }
+#endif
+#ifdef FEAT_TITLE
     /* when 'endofline' is changed, redraw the window title */
     else if ((int *)varp == &curbuf->b_p_eol)
     {
@@ -8443,7 +8452,7 @@ findoption(arg)
 get_option_value(name, numval, stringval, opt_flags)
     char_u	*name;
     long	*numval;
-    char_u	**stringval;	    /* NULL when only checking existance */
+    char_u	**stringval;	    /* NULL when only checking existence */
     int		opt_flags;
 {
     int		opt_idx;
diff --git a/src/screen.c b/src/screen.c
index 17533303459807b5df59bb112a052486aa3862f8..f2108be23f286114c03d9fc9454b484d37fb1a8f 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -595,7 +595,7 @@ update_single_line(wp, lnum)
     int		j;
 
     if (lnum >= wp->w_topline && lnum < wp->w_botline
-					  && foldedCount(wp, lnum, NULL) == 0)
+				 && foldedCount(wp, lnum, &win_foldinfo) == 0)
     {
 # ifdef FEAT_GUI
 	/* Remove the cursor before starting to do anything, because scrolling