diff -r acf7368a2acc src/normal.c
--- a/src/normal.c	Thu Mar 21 22:53:50 2013 +0100
+++ b/src/normal.c	Mon Mar 25 22:07:32 2013 +0100
@@ -1508,7 +1508,10 @@
 	/* never redo "zf" (define fold) */
 	if ((vim_strchr(p_cpo, CPO_YANK) != NULL || oap->op_type != OP_YANK)
 #ifdef FEAT_VISUAL
-		&& (!VIsual_active || oap->motion_force)
+		&& ((!VIsual_active || oap->motion_force)
+		    /* Also redo Operator-pending Visual mode mappings */
+		    || (VIsual_active && cap->cmdchar == ':'
+			&& oap->op_type != OP_COLON))
 #endif
 		&& cap->cmdchar != 'D'
 #ifdef FEAT_FOLDING
@@ -1797,7 +1800,7 @@
 		    prep_redo(oap->regname, 0L, NUL, cap->cmdchar, cap->nchar,
 					get_op_char(oap->op_type),
 					get_extra_op_char(oap->op_type));
-		else
+		else if (cap->cmdchar != ':')
 		    prep_redo(oap->regname, 0L, NUL, 'v',
 					get_op_char(oap->op_type),
 					get_extra_op_char(oap->op_type),
