code: @SuppressWarnings("unchecked")
  	public ListIterator<Address> getAddressHeaders(String name)
  			throws ServletParseException {
  		if(logger.isDebugEnabled()) {
  			logger.debug("getAddressHeaders - name=" + name);
  		}
  
  		String hName = getFullHeaderName(name);
  
  		// Fix from Thomas Leseney from Nexcom systems
  //		if (!isAddressTypeHeader(hName)) {
  //			throw new ServletParseException(
  //					"Header [" + hName + "] is not address type header");
  //		}
  		LinkedList<Address> retval = new LinkedList<Address>();
  		String nameToSearch = getCorrectHeaderName(hName);
  
  		for (Iterator<Header> it = this.message.getHeaders(nameToSearch); it
  				.hasNext();) {
  			Header header = (Header) it.next();
  			if (header instanceof HeaderAddress) {
  				HeaderAddress aph = (HeaderAddress) header;
  				try {
  					AddressImpl addressImpl = new AddressImpl(
  							aph, getModifiableRule(hName));
  					retval.add(addressImpl);
  				} catch (ParseException ex) {
  					throw new ServletParseException("Bad header", ex);
  				}
  			}  else {
  				Parameterable parametrable = createParameterable(header, header.getName(), message instanceof Request);
  				try {
  					AddressImpl addressImpl = new AddressImpl(SipFactoryImpl.addressFactory.createAddress(parametrable.getValue()), ((ParameterableHeaderImpl)parametrable).getInternalParameters(), getModifiableRule(hName));
  					retval.add(addressImpl);
  				} catch (ParseException e) {
  					throw new ServletParseException("Impossible to parse the following header " + name + " as an address.", e);
  				}
  			}
  		}
  		return retval.listIterator();
  	}
docs: /*
  (non-Javadoc)
  @see javax.servlet.sip.SipServletMessage#getAddressHeaders(java.lang.String)