public synchronized boolean removalStep()
  {
    long l1 = this.TopMessageFinishedAt + 6000L;
    long l2 = System.currentTimeMillis();
    if (l1 > l2)
    {
      startRemovalDelay((int)(l1 - l2));
    }
    else if (this.CurrentMessages.size() > 0)
    {
      remove((Component)this.CurrentMessages.elementAt(0));
      doLayout();

      this.CurrentMessages.removeElementAt(0);

      if (this.CurrentMessages.size() == 0) {
        disappear();
      }
      else
      {
        this.TopMessageFinishedAt = l2;
        startRemovalDelay(6000);
      }
    }

    return false;
  }