diff --git a/top/top.c b/top/top.c
index 30a2fc85..dd4b9481 100644
--- a/top/top.c
+++ b/top/top.c
@@ -4664,7 +4664,8 @@ static void wins_stage_2 (void) {
       ;                           // avoid -Wunused-result
 #endif
 
-   // with preserved 'other filters', ensure a visible task on row #1
+   // with preserved 'other filters' & command line 'user filters',
+   // we must ensure that we always have a visible task on row one.
    mkVIZrow1(Curwin);
 
    // lastly, initialize a signal set used to throttle one troublesome signal
@@ -5362,7 +5363,10 @@ static void keys_task (int ch) {
       case 'O':
       case 'o':
       case kbd_CtrlO:
-         if (VIZCHKw(w)) other_filters(ch);
+         if (VIZCHKw(w)) {
+            other_filters(ch);
+            mkVIZrow1(w);
+         }
          break;
       case 'U':
       case 'u':
@@ -5371,6 +5375,7 @@ static void keys_task (int ch) {
             if (*str != kbd_ESC
             && (errmsg = user_certify(w, str, ch)))
                 show_msg(errmsg);
+            mkVIZrow1(w);
          }
          break;
       case 'V':
@@ -6254,7 +6259,7 @@ static const char *task_show (const WIN_t *q, const int idx) {
          * In reality, this function is called:
          *   1) exclusively for the 'current' window
          *   2) immediately after interacting with the user
-         *   3) who struck 1 of these: up, down, pgup, pgdn, home or end
+         *   3) who struck: up, down, pgup, pgdn, home, end, 'o/O' or 'u/U'
          *   4) or upon the user switching from one window to another window */
 static void window_hlp (void) {
    WIN_t *w = Curwin;             // avoid gcc bloat with a local copy
diff --git a/top/top.h b/top/top.h
index 4a7c49a8..d274d109 100644
--- a/top/top.h
+++ b/top/top.h
@@ -471,7 +471,7 @@ typedef struct WIN_t {
 #endif
 
         // Support for a proper (visible) row #1 whenever Curwin changes
-        // ( or a certain vertical scrolling key has been struck )
+        // ( or a key which might affect vertical scrolling was struck )
 #define mkVIZrow1(q) { q->begtask -= 1; q->begnext = +1; }
 
         /* Special Section: end ------------------------------------------ */