updated for version 7.0230
diff --git a/src/ui.c b/src/ui.c
index 608e59a..fb93b90 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -139,7 +139,7 @@
 #endif
 
 #ifdef FEAT_PROFILE
-    if (do_profiling && wtime != 0)
+    if (do_profiling == PROF_YES && wtime != 0)
 	prof_inchar_enter();
 #endif
 
@@ -199,7 +199,7 @@
 theend:
 #endif
 #ifdef FEAT_PROFILE
-    if (do_profiling && wtime != 0)
+    if (do_profiling == PROF_YES && wtime != 0)
 	prof_inchar_exit();
 #endif
     return retval;
@@ -473,7 +473,8 @@
 	     * selected area.  There is no specific redraw command for this,
 	     * just redraw all windows on the current buffer. */
 	    if (cbd->owned
-		    && get_real_state() == VISUAL
+		    && (get_real_state() == VISUAL
+					    || get_real_state() == SELECTMODE)
 		    && clip_isautosel()
 		    && hl_attr(HLF_V) != hl_attr(HLF_VNC))
 		redraw_curbuf_later(INVERTED_ALL);
@@ -503,7 +504,8 @@
 	 * area.  There is no specific redraw command for this, just redraw all
 	 * windows on the current buffer. */
 	if (was_owned
-		&& get_real_state() == VISUAL
+		&& (get_real_state() == VISUAL
+					    || get_real_state() == SELECTMODE)
 		&& clip_isautosel()
 		&& hl_attr(HLF_V) != hl_attr(HLF_VNC))
 	{