updated for version 7.0028
diff --git a/src/ops.c b/src/ops.c
index 1cbb928..b17effe 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -1530,6 +1530,7 @@
     if (       oap->motion_type == MCHAR
 #ifdef FEAT_VISUAL
 	    && !oap->is_VIsual
+	    && !oap->block_mode
 #endif
 	    && oap->line_count > 1
 	    && oap->op_type == OP_DELETE)
@@ -2679,6 +2680,7 @@
 	    && !oap->inclusive
 #ifdef FEAT_VISUAL
 	    && (!oap->is_VIsual || *p_sel == 'o')
+	    && !oap->block_mode
 #endif
 	    && oap->end.col == 0
 	    && yanklines > 1)
@@ -5997,7 +5999,7 @@
 		    if (lnum == curbuf->b_ml.ml_line_count
 			    && !curbuf->b_p_eol
 			    && curbuf->b_p_bin
-			    && STRLEN(s) < len)
+			    && (long)STRLEN(s) < len)
 			char_count_cursor -= eol_size;
 		}
 	    }