--- screen-4.0.2/display.c      2003-12-05 14:45:41.000000000 +0100
+++ screen-4.0.2-rzm/display.c  2003-12-16 13:23:15.000000000 +0100
@@ -120,6 +120,7 @@
#endif
int captionalways;
int hardstatusemu = HSTATUS_IGNORE;
+struct statusposstr statuspos = { STATUS_BOTTOM, STATUS_LEFT };

/*
 *  Default layer management
@@ -2277,8 +2278,8 @@
  if (!use_hardstatus || D_has_hstatus == HSTATUS_IGNORE || D_has_hstatus == HSTATUS_MESSAGE)
    {
      D_status = STATUS_ON_WIN;
-      debug1("using STATLINE %d\n", STATLINE);
-      GotoPos(0, STATLINE);
+      debug2("using STATLINE/COL %d,%d\n", STATLINE(), STATCOL(D_width, D_status_len) );
+      GotoPos(STATCOL(D_width, D_status_len), STATLINE());
      SetRendition(&mchar_so);
      InsertMode(0);
      AddStr(msg);
@@ -2314,8 +2315,8 @@
      ASSERT(D_obuffree == D_obuflen);
      /* this is copied over from RemoveStatus() */
      D_status = 0;
-      GotoPos(0, STATLINE);
-      RefreshLine(STATLINE, 0, D_status_len - 1, 0);
+      GotoPos(STATCOL(D_width, D_status_len), STATLINE());
+      RefreshLine(STATLINE(), STATCOL(D_width, D_status_len), STATCOL(D_width, D_status_len) + D_status_len - 1, 0);
      GotoPos(D_status_lastx, D_status_lasty);
      flayer = D_forecv ? D_forecv->c_layer : 0;
      if (flayer)
@@ -2365,8 +2366,8 @@
  oldflayer = flayer;
  if (where == STATUS_ON_WIN)
    {
-      GotoPos(0, STATLINE);
-      RefreshLine(STATLINE, 0, D_status_len - 1, 0);
+      GotoPos(STATCOL(D_width, D_status_len), STATLINE());
+      RefreshLine(STATLINE(), STATCOL(D_width, D_status_len), STATCOL(D_width, D_status_len) + D_status_len - 1, 0);
      GotoPos(D_status_lastx, D_status_lasty);
    }
  else
@@ -2385,7 +2386,7 @@
{
  int l, i, ox, oy, max;

-  if (D_status == STATUS_ON_WIN && D_has_hstatus == HSTATUS_LASTLINE && STATLINE == D_height-1)
+  if (D_status == STATUS_ON_WIN && D_has_hstatus == HSTATUS_LASTLINE && STATLINE() == D_height-1)
    return;    /* sorry, in use */
  if (D_blocked)
    return;
@@ -2519,7 +2520,7 @@
  debug2("RefreshLine %d %d", y, from);
  debug2(" %d %d\n", to, isblank);

-  if (D_status == STATUS_ON_WIN && y == STATLINE)
+  if (D_status == STATUS_ON_WIN && y == STATLINE())
    return;    /* can't refresh status */

  if (isblank == 0 && D_CE && to == D_width - 1 && from < to)