public void undo(IDTextField field)
  {
    // no active list
    if (list == null)
      return ;

    int otherID = field.getMyID() ;
    int index = 0 ;
    boolean notFound = true ;
    ListIterator iterator = list.listIterator() ;

    // search for undo's
    while (iterator.hasNext() && notFound)
    {
      UndoData data = (UndoData) iterator.next() ;

      // take the first undo for the component with id <otherID>
      if (data.id == otherID)
      {
        field.setText( data.text );
        field.setDataChanged(true);
        notFound = false ;
        list.remove(index) ;

      }
      else index++ ;
    }

  }