***************
*** 659,665 ****
      s->access_confname = NULL;
      s->timeout = 0;
      s->do_rfc931 = 0;
!     s->host_addr.s_addr = get_virthost_addr (hostname, 0);
      s->next = NULL;
  
      s->module_config = create_empty_config (p);
--- 658,665 ----
      s->access_confname = NULL;
      s->timeout = 0;
      s->do_rfc931 = 0;
!     s->host_addr.s_addr = get_virthost_addr (hostname, &s->host_port);
!     s->port = s->host_port;  /* set them the same, by default */
      s->next = NULL;
  
      s->module_config = create_empty_config (p);
***************
*** 670,676 ****
  
  int is_virtual_server (server_rec *s)
  {
!     return s->host_addr.s_addr != htonl (INADDR_ANY);
  }
  
  void fixup_virtual_hosts (pool *p, server_rec *main_server)
--- 670,676 ----
  
  int is_virtual_server (server_rec *s)
  {
!     return s->is_virtual;
  }
  
  void fixup_virtual_hosts (pool *p, server_rec *main_server)
***************
*** 725,730 ****
      pid_fname = DEFAULT_PIDLOG;
      max_requests_per_child = DEFAULT_MAX_REQUESTS_PER_CHILD;
      bind_address.s_addr = htonl(INADDR_ANY);
  }
  
  server_rec *init_server_config(pool *p)
--- 725,731 ----
      pid_fname = DEFAULT_PIDLOG;
      max_requests_per_child = DEFAULT_MAX_REQUESTS_PER_CHILD;
      bind_address.s_addr = htonl(INADDR_ANY);
+     listeners = NULL;
  }
  
  server_rec *init_server_config(pool *p)
***************
*** 744,749 ****
  					       * don't match any real network
  					       * interface.
  					       */
  
      s->module_config = create_server_config (p, s);
      s->lookup_defaults = create_default_per_dir_config (p);
--- 745,751 ----
  					       * don't match any real network
  					       * interface.
  					       */
+     s->host_port = 0; /* matches any port */
  
      s->module_config = create_server_config (p, s);
      s->lookup_defaults = create_default_per_dir_config (p);
