I have doubly linked list, m\_Terminal1 is the begin of list, and m\_Terminal2 is the end of the list. Here is my code

```
CBusLine(const CBusLine & orig){
      m_Terminal1 = new TStop(orig.m_Terminal1 -> m_Name);
      m_Terminal2 = new TStop(orig.m_Terminal1 -> m_Name);
      TStop * tmpx = m_Terminal2;
      TStop * copy = orig.m_Terminal1;
      copy = copy ->m_Next;
      while(copy != NULL){
          TStop * copy_tmp = new TStop(copy->m_Name);
          tmpx -> m_Next = copy_tmp;
          copy_tmp -> m_Prev = tmpx;
          tmpx = copy_tmp;
          copy = copy->m_Next;
      }

```

Unfortunately, it doesn't work, when I want to print out the list, there is only first item.
Here is source file <http://pastebin.com/YCKyZ31K> . Could somebody help me? Thank you in advance