Never hide text for conceal in cursor line.  Do hide when there is
highlighting.
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index cbf0994..acfbf60 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1724,10 +1724,10 @@
 	2		Concealed text is completely hidden unless it has a
 			custom replacement character defined (see
 			|:syn-cchar|.
-	3		Concealed text is completely hidden.  Note: when
-			moving the cursor after concealed items the position
-			will be wrong.
+	3		Concealed text is completely hidden.
 
+	Note: in the cursor line concealed text is not hidden, so that you can
+	edit and copy the text.
 
 				*'confirm'* *'cf'* *'noconfirm'* *'nocf'*
 'confirm' 'cf'		boolean (default off)
diff --git a/src/screen.c b/src/screen.c
index 7d6985a..de405e1 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -4377,12 +4377,9 @@
 	    }
 
 #ifdef FEAT_CONCEAL
-	    if (    wp->w_p_conc > 0
-		    && !area_highlighting
-		    && (lnum != wp->w_cursor.lnum
-			|| curwin != wp || wp->w_buffer->b_p_ma == FALSE)
-		    && (syntax_flags & HL_CONCEAL) != 0)
-
+	    if (   wp->w_p_conc > 0
+		&& (lnum != wp->w_cursor.lnum || curwin != wp)
+		&& (syntax_flags & HL_CONCEAL) != 0)
 	    {
 		char_attr = conceal_attr;
 		if (first_conceal