/// <summary>
        /// Removes last value. If value is the last value n header field, the whole header field will be removed.
        /// </summary>
        public void RemoveLastValue()
        {
            SIP_MultiValueHF <T> h = m_pFields[m_pFields.Count - 1];

            if (h.Count > 1)
            {
                h.Remove(h.Count - 1);
            }
            else
            {
                m_pMessage.Header.Remove(m_pFields[0]);
                m_pFields.Remove(h);
            }
        }
 /// <summary>
 /// Removes top most header field first value. If value is the last value,
 /// the whole header field will be removed.
 /// </summary>
 public void RemoveTopMostValue()
 {
     if (m_pFields.Count > 0)
     {
         SIP_MultiValueHF <T> h = m_pFields[0];
         if (h.Count > 1)
         {
             h.Remove(0);
         }
         else
         {
             m_pMessage.Header.Remove(m_pFields[0]);
             m_pFields.Remove(m_pFields[0]);
         }
     }
 }