updated for version 7.4.573
Problem:    Mapping CTRL-C in Visual mode doesn't work. (Ingo Karkat)
Solution:   Call get_real_state() instead of using State directly.
diff --git a/src/testdir/test_mapping.in b/src/testdir/test_mapping.in
index c957569..7ac578f 100644
--- a/src/testdir/test_mapping.in
+++ b/src/testdir/test_mapping.in
@@ -8,7 +8,7 @@
 :inoreab чкпр   vim
 GAчкпр 
 
-:" mapping of ctrl-c in insert mode
+:" mapping of ctrl-c in Insert mode
 :set cpo-=< cpo-=k
 :inoremap <c-c> <ctrl-c>
 :cnoremap <c-c> dummy
@@ -16,9 +16,15 @@
 GA
 TEST2: CTRL-C |A|
 
-:nunmap <c-c>
-
-: " langmap should not get remapped in insert mode
+:unmap <c-c>
+:unmap! <c-c>
+:"
+:" mapping of ctrl-c in Visual mode
+:vnoremap <c-c> :<C-u>$put ='vmap works'
+GV
+:vunmap <c-c>
+:"
+:" langmap should not get remapped in insert mode
 :inoremap { FAIL_ilangmap
 :set langmap=+{ langnoremap
 o+
diff --git a/src/testdir/test_mapping.ok b/src/testdir/test_mapping.ok
index cd0e2e1..bf21e51 100644
--- a/src/testdir/test_mapping.ok
+++ b/src/testdir/test_mapping.ok
@@ -2,5 +2,6 @@
 vim
 TEST2: CTRL-C |<ctrl-c>A|
 
+vmap works
 +
 +
diff --git a/src/ui.c b/src/ui.c
index 6fc5bde..5979482 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -180,7 +180,7 @@
 
 	/* ... there is no need for CTRL-C to interrupt something, don't let
 	 * it set got_int when it was mapped. */
-	if ((mapped_ctrl_c | curbuf->b_mapped_ctrl_c) & State)
+	if ((mapped_ctrl_c | curbuf->b_mapped_ctrl_c) & get_real_state())
 	    ctrl_c_interrupts = FALSE;
     }
 
diff --git a/src/version.c b/src/version.c
index b049ea2..ed1a6e3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    573,
+/**/
     572,
 /**/
     571,