diff --git a/top/top.c b/top/top.c
index d199b5e3..83a89a8b 100644
--- a/top/top.c
+++ b/top/top.c
@@ -112,18 +112,18 @@ static int   Monpidsidx = 0;
         /* Current terminal screen size. */
 static int   Screen_cols, Screen_rows, Max_lines;
 
-        // these are used to potentially set aside a bottom 'window'
-#define      SCREEN_ROWS ( Screen_rows - Tagged_rsvd )
+        // these are for the special separate bottom 'window'
+#define      SCREEN_ROWS ( Screen_rows - Bot_rsvd )
         // 1 for horizontal separator
-#define      TAGGED_RSVD ( 1 )
-#define      TAGGED_KEEP Tagged_show = 0
-#define      TAGGED_TOSS do { Tagged_show = 0; \
-                Tagged_task = Tagged_rsvd = Tagged_lflg = 0; } while (0)
-static int   Tagged_show,
-             Tagged_task,
-             Tagged_rsvd,
-             Tagged_lflg;
-static char *Tagged_name;
+#define      BOT_RSVD  1
+#define      BOT_KEEP  Bot_show = 0
+#define      BOT_TOSS  do { Bot_show = 0; \
+                Bot_task = Bot_rsvd = Bot_lflg = 0; } while (0)
+static int   Bot_show,
+             Bot_task,
+             Bot_rsvd,
+             Bot_lflg;
+static char *Bot_name;
 
         /* This is really the number of lines needed to display the summary
            information (0 - nn), but is used as the relative row where we
@@ -2143,7 +2143,7 @@ static void build_headers (void) {
          if (w->usrseltyp == 'U') Frames_libflags |= L_status;
 
          // lastly, accommodate any special non-display 'tagged' needs...
-         if (Tagged_lflg) Frames_libflags |= Tagged_lflg;
+         if (Bot_lflg) Frames_libflags |= Bot_lflg;
       } // end: VIZISw(w)
 
       if (Rc.mode_altscr) w = w->next;
@@ -4563,7 +4563,7 @@ static void win_reset (WIN_t *q) {
          // these next guys are global, not really windows based
          Monpidsidx = 0;
          Rc.tics_scaled = 0;
-         TAGGED_TOSS;
+         BOT_TOSS;
 } // end: win_reset
 
 
@@ -4846,77 +4846,12 @@ static void wins_stage_2 (void) {
 } // end: wins_stage_2
 
 
-        /*
-         * This guy manages the bottom margin window,
-         * showing miscellaneous variable width data.  */
-static void wins_tag_show (void) {
- #define maxRSVD  ( Screen_rows - 1 )
-   char buf[SMLBUFSIZ];
-   const char *p;
-   int i;
-
-   for (i = 0; i < Frame_maxtask; i++) {
-      if (Tagged_task == Curwin->ppt[i]->tid)
-         break;
-   }
-   if (i < Frame_maxtask) {
-      snprintf(buf, sizeof(buf), " %s for pid %d, %s"
-         , Tagged_name, Tagged_task, Curwin->ppt[i]->cmd);
-      switch (Tagged_lflg) {
-         case (L_CGROUP):         // Ctrl-G
-            p = *Curwin->ppt[i]->cgroup;
-            break;
-         case (L_CMDLINE):        // Ctrl-K
-            p = *Curwin->ppt[i]->cmdline;
-            break;
-         case (L_ENVIRON):        // Ctrl-N
-            p = *Curwin->ppt[i]->environ;
-            break;
-         case (L_SUPGRP):         // Ctrl-U
-            p = Curwin->ppt[i]->supgrp;
-            break;
-      }
-      if (!p || !*p || !strcmp(p, "-")) p = "n/a";
-      Tagged_rsvd = 1 + TAGGED_RSVD + (strlen(p) / Screen_cols);
-      if (Tagged_rsvd > maxRSVD) Tagged_rsvd = maxRSVD;
-      putp(fmtmk("%s%s%-*s", tg2(0, SCREEN_ROWS), Curwin->capclr_hdr, Screen_cols, buf));
-      putp(fmtmk("%s%s", tg2(0, SCREEN_ROWS + 1), Cap_clr_eos));
-      putp(fmtmk("%s%s", tg2(0, SCREEN_ROWS + 1), Cap_norm));
-      fputs(p, stdout);
-#ifdef TAGGED_BRIEF
-   } else
-      TAGGED_TOSS;
-#else
-   }
-   TAGGED_KEEP;
-#endif
-} // end: wins_tag_show
-
-
-        /*
-         * This guy toggles between displaying a Ctrl
-         * bottom window or arranging to turn it off. */
-static void wins_tag_toggle (int flg, const char *str) {
-   int pid = Curwin->ppt[Curwin->begtask]->tid;
-
-   // if already targeted, assume user wants to turn it off ...
-   if (Tagged_lflg == flg) {
-      TAGGED_TOSS;
-   } else {
-      Tagged_task = pid;
-      Tagged_lflg = flg;
-      Tagged_name = (char*)str;
-      Tagged_show = 1;
-   }
-} // end: wins_tag_toggle
-
-
         /*
          * Determine if this task matches the 'u/U' selection
          * criteria for a given window */
 static inline int wins_usrselect (const WIN_t *q, const int idx) {
    proc_t *p = q->ppt[idx];
-   switch(q->usrseltyp) {
+   switch (q->usrseltyp) {
       case 0:                                    // uid selection inactive
          return 1;
       case 'U':                                  // match any uid
@@ -5143,6 +5078,84 @@ static void forest_excluded (WIN_t *q) {
    }
 } // end: forest_excluded
 
+/*######  Special Separate Bottom Window support  ########################*/
+
+        /*
+         * This guy actually draws the bottom window, |
+         * including the contents passed as a string. | */
+static void bot_do_see (const char *str, const char *pgm) {
+ #define maxRSVD ( Screen_rows - 1 )
+   char buf[SMLBUFSIZ];
+
+   snprintf(buf, sizeof(buf), " %s for pid %d, %s"
+      , Bot_name, Bot_task, pgm);
+   if (!str || !*str || !strcmp(str, "-")) str = "n/a";
+   Bot_rsvd = 1 + BOT_RSVD + (strlen(str) / Screen_cols);
+   if (Bot_rsvd > maxRSVD) Bot_rsvd = maxRSVD;
+   putp(fmtmk("%s%s%-*s", tg2(0, SCREEN_ROWS), Curwin->capclr_hdr, Screen_cols, buf));
+   putp(fmtmk("%s%s", tg2(0, SCREEN_ROWS + 1), Cap_clr_eos));
+   putp(fmtmk("%s%s", tg2(0, SCREEN_ROWS + 1), Cap_norm));
+   fputs(str, stdout);
+ #undef maxRSVD
+} // end: bot_do_see
+
+
+        /*
+         * This guy manages the bottom margin window, |
+         * showing miscellaneous variable width data. | */
+static void bot_item_show (void) {
+ #define maxRSVD  ( Screen_rows - 1 )
+   char buf[SMLBUFSIZ];
+   const char *p;
+   int i;
+
+   for (i = 0; i < Frame_maxtask; i++) {
+      if (Bot_task == Curwin->ppt[i]->tid)
+         break;
+   }
+   if (i < Frame_maxtask) {
+      snprintf(buf, sizeof(buf), " %s for pid %d, %s"
+         , Bot_name, Bot_task, Curwin->ppt[i]->cmd);
+      switch (Bot_lflg) {
+         case (L_CGROUP):         // Ctrl-G
+            p = *Curwin->ppt[i]->cgroup;
+            break;
+         case (L_CMDLINE):        // Ctrl-K
+            p = *Curwin->ppt[i]->cmdline;
+            break;
+         case (L_ENVIRON):        // Ctrl-N
+            p = *Curwin->ppt[i]->environ;
+            break;
+         case (L_SUPGRP):         // Ctrl-U
+            p = Curwin->ppt[i]->supgrp;
+            break;
+      }
+      bot_do_see(p, Curwin->ppt[i]->cmd);
+   }
+#ifdef BOT_DEAD_ZAP
+   else
+      BOT_TOSS;
+#else
+   BOT_KEEP;
+#endif
+} // end: bot_item_show
+
+
+        /*
+         * This guy toggles between displaying a Ctrl |
+         * bottom window or arranging to turn it off. | */
+static void bot_item_toggle (int flg, const char *str) {
+   // if already targeted, assume user wants to turn it off ...
+   if (Bot_lflg == flg) {
+      BOT_TOSS;
+   } else {
+      Bot_lflg = flg;
+      Bot_name = (char*)str;
+      Bot_show = 1;
+      Bot_task = Curwin->ppt[Curwin->begtask]->tid;
+   }
+} // end: bot_item_toggle
+
 /*######  Interactive Input Tertiary support  ############################*/
 
   /*
@@ -5512,16 +5525,16 @@ static void keys_global (int ch) {
 #endif
          break;
       case kbd_CtrlG:
-         wins_tag_toggle((L_CGROUP), "control groups");
+         bot_item_toggle((L_CGROUP), "control groups");
          break;
       case kbd_CtrlK:
-         wins_tag_toggle((L_CMDLINE), "command line");
+         bot_item_toggle((L_CMDLINE), "command line");
          break;
       case kbd_CtrlN:
-         wins_tag_toggle((L_ENVIRON), "environment");
+         bot_item_toggle((L_ENVIRON), "environment");
          break;
       case kbd_CtrlU:
-         wins_tag_toggle((L_SUPGRP), "supplementary groups");
+         bot_item_toggle((L_SUPGRP), "supplementary groups");
          break;
       case kbd_ENTER:             // these two have the effect of waking us
       case kbd_SPACE:             // from 'pselect', refreshing the display
@@ -6909,7 +6922,7 @@ static void frame_make (void) {
    if (Frames_signal) {
       if (Frames_signal == BREAK_sig
       || (Frames_signal == BREAK_screen))
-         TAGGED_TOSS;
+         BOT_TOSS;
       zap_fieldstab();
    }
 
@@ -6959,7 +6972,7 @@ static void frame_make (void) {
    }
 
    if (CHKw(w, View_SCROLL) && VIZISw(Curwin)) show_scroll();
-   if (Tagged_show) wins_tag_show();
+   if (Bot_show) bot_item_show();
    fflush(stdout);
 
    /* we'll deem any terminal not supporting tgoto as dumb and disable
diff --git a/top/top.h b/top/top.h
index d9fb194e..1d170c9b 100644
--- a/top/top.h
+++ b/top/top.h
@@ -29,6 +29,7 @@
         /* Development/Debugging defines ----------------------------------- */
 //#define ATEOJ_RPTHSH            /* report on hash specifics, at end-of-job */
 //#define ATEOJ_RPTSTD            /* report on some miscellany at end-of-job */
+//#define BOT_DEAD_ZAP            /* zap Ctrl bottom window when target dies */
 //#define CASEUP_HEXES            /* show all those hex values in upper case */
 //#define CASEUP_SUFIX            /* show time/mem/cnts suffix in upper case */
 //#define CPU_ZEROTICS            /* tolerate few tics when cpu off vs. idle */
@@ -61,7 +62,6 @@
 //#define SCROLLVAR_NO            /* disable intra-column horizontal scrolls */
 //#define SCROLLV_BY_1            /* when scrolling left/right do not move 8 */
 //#define STRINGCASENO            /* case insenstive compare/locate versions */
-//#define TAGGED_BRIEF            /* zap Ctrl bottom window when target dies */
 //#define TERMIOS_ONLY            /* use native input only (just limp along) */
 //#define TOG4_NOFORCE            /* no force 2 abreast mode with '4' toggle */
 //#define TOG4_NOTRUNC            /* ensure no truncation for 2 abreast mode */
@@ -810,8 +810,6 @@ typedef struct WIN_t {
 //atic void          wins_reflag (int what, int flg);
 //atic void          wins_stage_1 (void);
 //atic void          wins_stage_2 (void);
-//atic void          wins_tag_show (void);
-//atic void          wins_tag_toggle (enum pflag enu, const char *str);
 //atic inline int    wins_usrselect (const WIN_t *q, const int idx);
 /*------  Forest View support  -------------------------------------------*/
 //atic void          forest_adds (const int self, int level);
@@ -821,6 +819,10 @@ typedef struct WIN_t {
 //atic void          forest_create (WIN_t *q);
 //atic inline const char *forest_display (const WIN_t *q, int idx);
 //atic void          forest_excluded (WIN_t *q);
+/*------  Special Separate Bottom Window support  ------------------------*/
+//atic void          bot_do_see (const char *str, const char *pgm);
+//atic void          bot_item_show (void);
+//atic void          bot_item_toggle (enum pflag item, const char *name);
 /*------  Interactive Input Tertiary support  ----------------------------*/
 //atic inline int    find_ofs (const WIN_t *q, const char *buf);
 //atic void          find_string (int ch);