diff -Naur nagios-3.2.3-old/base/commands.c nagios-3.2.3/base/commands.c
--- nagios-3.2.3-old/base/commands.c	2008-11-30 19:22:58.000000000 +0200
+++ nagios-3.2.3/base/commands.c	2010-12-13 09:42:09.000000000 +0200
@@ -2060,9 +2060,12 @@
 				real_host_name=temp_host->name;
 				break;
 			        }
-		        }
+		        else if(!strcmp(host_name,temp_host->address6)){
+				real_host_name=temp_host->name;
+				break;
+			        }
 	        }
-
+	}
 	/* we couldn't find the host */
 	if(real_host_name==NULL){
 		logit(NSLOG_RUNTIME_WARNING,TRUE,"Warning:  Passive check result was received for service '%s' on host '%s', but the host could not be found!\n",svc_description,host_name);
@@ -2201,9 +2204,12 @@
 				real_host_name=temp_host->name;
 				break;
 			        }
-		        }
+		        else if(!strcmp(host_name,temp_host->address6)){
+				real_host_name=temp_host->name;
+				break;
+			        }
 	        }
-
+	}
 	/* we couldn't find the host */
 	if(temp_host==NULL){
 		logit(NSLOG_RUNTIME_WARNING,TRUE,"Warning:  Passive check result was received for host '%s', but the host could not be found!\n",host_name);
diff -Naur nagios-3.2.3-old/cgi/config.c nagios-3.2.3/cgi/config.c
--- nagios-3.2.3-old/cgi/config.c	2010-09-01 17:19:59.000000000 +0300
+++ nagios-3.2.3/cgi/config.c	2010-12-13 09:42:09.000000000 +0200
@@ -473,6 +473,7 @@
 	printf("<TH CLASS='data'>Host Name</TH>");
 	printf("<TH CLASS='data'>Alias/Description</TH>");
 	printf("<TH CLASS='data'>Address</TH>");
+	printf("<TH CLASS='data'>Address6</TH>");
 	printf("<TH CLASS='data'>Parent Hosts</TH>");
 	printf("<TH CLASS='data'>Max. Check Attempts</TH>");
 	printf("<TH CLASS='data'>Check Interval</TH>\n");
@@ -532,6 +533,7 @@
 			url_encode(temp_host->name),CONFIG_CGI,url_encode(temp_host->name),html_encode(temp_host->name,FALSE));
 		printf("<TD CLASS='%s'>%s</TD>\n",bg_class,html_encode(temp_host->alias,FALSE));
 		printf("<TD CLASS='%s'>%s</TD>\n",bg_class,html_encode(temp_host->address,FALSE));
+		printf("<TD CLASS='%s'>%s</TD>\n",bg_class,html_encode(temp_host->address6,FALSE));
 
 		printf("<TD CLASS='%s'>",bg_class);
 		for(temp_hostsmember=temp_host->parent_hosts;temp_hostsmember!=NULL;temp_hostsmember=temp_hostsmember->next){
diff -Naur nagios-3.2.3-old/cgi/extinfo.c nagios-3.2.3/cgi/extinfo.c
--- nagios-3.2.3-old/cgi/extinfo.c	2010-06-18 17:25:30.000000000 +0300
+++ nagios-3.2.3/cgi/extinfo.c	2010-12-13 09:42:09.000000000 +0200
@@ -244,6 +244,9 @@
 				printf("function nagios_get_host_address()\n{\n");
 				printf("return \"%s\";\n",temp_host->address);
 				printf("}\n");
+				printf("function nagios_get_host_address6()\n{\n");
+				printf("return \"%s\";\n",temp_host->address6);
+				printf("}\n");
 				if(temp_service!=NULL){
 					printf("function nagios_get_service_description()\n{\n");
 					printf("return \"%s\";\n",temp_service->description);
@@ -348,7 +351,7 @@
 				if(found==FALSE)
 					printf("No hostgroups");
 				printf("</DIV><BR>\n");
-				printf("<DIV CLASS='data'>%s</DIV>\n",temp_host->address);
+				printf("<DIV CLASS='data'>%s, %s</DIV>\n",temp_host->address,temp_host->address6);
 			        }
 			if(display_type==DISPLAY_SERVICE_INFO){
 				printf("<DIV CLASS='data'>Service</DIV><DIV CLASS='dataTitle'>%s</DIV><DIV CLASS='data'>On Host</DIV>\n",service_desc);
@@ -368,7 +371,7 @@
 					printf("No servicegroups.");
                                 printf("</DIV><BR>\n");
 
-				printf("<DIV CLASS='data'>%s</DIV>\n",temp_host->address);
+				printf("<DIV CLASS='data'>%s, %s</DIV>\n",temp_host->address,temp_host->address6);
 				}
 			if(display_type==DISPLAY_HOSTGROUP_INFO){
 				printf("<DIV CLASS='data'>Hostgroup</DIV>\n");
diff -Naur nagios-3.2.3-old/cgi/status.c nagios-3.2.3/cgi/status.c
--- nagios-3.2.3-old/cgi/status.c	2010-09-21 18:05:31.000000000 +0300
+++ nagios-3.2.3/cgi/status.c	2010-12-13 09:42:09.000000000 +0200
@@ -271,6 +271,11 @@
 						host_name=strdup(temp_host->name);
 						break;
 						}
+					if(!strcmp(host_name,temp_host->address6)){
+						free(host_name);
+						host_name=strdup(temp_host->name);
+						break;
+						}
 					}
 				if(temp_host==NULL){
 					for(temp_host=host_list;temp_host!=NULL;temp_host=temp_host->next){
diff -Naur nagios-3.2.3-old/cgi/statusmap.c nagios-3.2.3/cgi/statusmap.c
--- nagios-3.2.3-old/cgi/statusmap.c	2009-07-08 01:19:45.000000000 +0300
+++ nagios-3.2.3/cgi/statusmap.c	2010-12-13 09:42:09.000000000 +0200
@@ -1951,6 +1951,7 @@
 	printf("<tr><td class=\\\"popupText\\\">Name:</td><td class=\\\"popupText\\\"><b>%s</b></td></tr>",escape_string(hst->name));
 	printf("<tr><td class=\\\"popupText\\\">Alias:</td><td class=\\\"popupText\\\"><b>%s</b></td></tr>",escape_string(hst->alias));
 	printf("<tr><td class=\\\"popupText\\\">Address:</td><td class=\\\"popupText\\\"><b>%s</b></td></tr>",html_encode(hst->address,TRUE));
+	printf("<tr><td class=\\\"popupText\\\">Address6:</td><td class=\\\"popupText\\\"><b>%s</b></td></tr>",html_encode(hst->address6,TRUE));
 	printf("<tr><td class=\\\"popupText\\\">State:</td><td class=\\\"popupText\\\"><b>");
 
 	/* get the status of the host (pending, up, down, or unreachable) */
diff -Naur nagios-3.2.3-old/cgi/statuswml.c nagios-3.2.3/cgi/statuswml.c
--- nagios-3.2.3-old/cgi/statuswml.c	2009-06-19 07:30:26.000000000 +0300
+++ nagios-3.2.3/cgi/statuswml.c	2010-12-13 09:42:09.000000000 +0200
@@ -952,7 +952,9 @@
 	printf("<b>Host Commands</b><br/>\n");
 
 	printf("<b><anchor title='Ping Host'>Ping Host<go href='%s' method='post'><postfield name='ping' value='%s'/></go></anchor></b>\n",STATUSWML_CGI,temp_host->address);
+	printf("<b><anchor title='Ping6 Host'>Ping6 Host<go href='%s' method='post'><postfield name='ping6' value='%s'/></go></anchor></b>\n",STATUSWML_CGI,temp_host->address6);
 	printf("<b><anchor title='Traceroute'>Traceroute<go href='%s' method='post'><postfield name='traceroute' value='%s'/></go></anchor></b>\n",STATUSWML_CGI,temp_host->address);
+	printf("<b><anchor title='Traceroute6'>Traceroute6<go href='%s' method='post'><postfield name='traceroute6' value='%s'/></go></anchor></b>\n",STATUSWML_CGI,temp_host->address6);
 
 	if(temp_hoststatus->status!=HOST_UP && temp_hoststatus->status!=HOST_PENDING)
 		printf("<b><anchor title='Acknowledge Problem'>Acknowledge Problem<go href='#card3'/></anchor></b>\n");
diff -Naur nagios-3.2.3-old/common/macros.c nagios-3.2.3/common/macros.c
--- nagios-3.2.3-old/common/macros.c	2010-09-21 18:05:31.000000000 +0300
+++ nagios-3.2.3/common/macros.c	2010-12-15 18:04:56.000000000 +0200
@@ -696,6 +696,7 @@
 	case MACRO_HOSTNAME:
 	case MACRO_HOSTALIAS:
 	case MACRO_HOSTADDRESS:
+	case MACRO_HOSTADDRESS6:
 	case MACRO_LASTHOSTCHECK:
 	case MACRO_LASTHOSTSTATECHANGE:
 	case MACRO_HOSTOUTPUT:
@@ -1626,6 +1627,9 @@
 	case MACRO_HOSTADDRESS:
 		*output=(char *)strdup(temp_host->address);
 		break;
+	case MACRO_HOSTADDRESS6:
+		*output=(char *)strdup(temp_host->address6);
+		break;
 #ifdef NSCORE
 	case MACRO_HOSTSTATE:
 		if(temp_host->current_state==HOST_DOWN)
@@ -2573,6 +2577,7 @@
 	add_macrox_name(MACRO_HOSTNAME,"HOSTNAME");
 	add_macrox_name(MACRO_HOSTALIAS,"HOSTALIAS");
 	add_macrox_name(MACRO_HOSTADDRESS,"HOSTADDRESS");
+	add_macrox_name(MACRO_HOSTADDRESS6,"HOSTADDRESS6");
 	add_macrox_name(MACRO_SERVICEDESC,"SERVICEDESC");
 	add_macrox_name(MACRO_SERVICESTATE,"SERVICESTATE");
 	add_macrox_name(MACRO_SERVICESTATEID,"SERVICESTATEID");
@@ -2929,6 +2934,7 @@
 		case MACRO_HOSTDISPLAYNAME:
 		case MACRO_HOSTALIAS:
 		case MACRO_HOSTADDRESS:
+		case MACRO_HOSTADDRESS6:
 		case MACRO_HOSTSTATE:
 		case MACRO_HOSTSTATEID:
 		case MACRO_HOSTCHECKTYPE:
diff -Naur nagios-3.2.3-old/common/macros.c.rej nagios-3.2.3/common/macros.c.rej
--- nagios-3.2.3-old/common/macros.c.rej	1970-01-01 03:00:00.000000000 +0300
+++ nagios-3.2.3/common/macros.c.rej	2010-12-13 09:42:09.000000000 +0200
@@ -0,0 +1,16 @@
+***************
+*** 2548,2553 ****
+  	add_macrox_name(HOSTNAME);
+  	add_macrox_name(HOSTALIAS);
+  	add_macrox_name(HOSTADDRESS);
+  	add_macrox_name(SERVICEDESC);
+  	add_macrox_name(SERVICESTATE);
+  	add_macrox_name(SERVICESTATEID);
+--- 2552,2558 ----
+  	add_macrox_name(HOSTNAME);
+  	add_macrox_name(HOSTALIAS);
+  	add_macrox_name(HOSTADDRESS);
++ 	add_macrox_name(HOSTADDRESS6);
+  	add_macrox_name(SERVICEDESC);
+  	add_macrox_name(SERVICESTATE);
+  	add_macrox_name(SERVICESTATEID);
diff -Naur nagios-3.2.3-old/common/objects.c nagios-3.2.3/common/objects.c
--- nagios-3.2.3-old/common/objects.c	2010-09-21 18:05:31.000000000 +0300
+++ nagios-3.2.3/common/objects.c	2010-12-15 17:38:38.000000000 +0200
@@ -621,7 +621,7 @@
 
 
 /* add a new host definition */
-host *add_host(char *name, char *display_name, char *alias, char *address, char *check_period, int initial_state, double check_interval, double retry_interval, int max_attempts, int notify_up, int notify_down, int notify_unreachable, int notify_flapping, int notify_downtime, double notification_interval, double first_notification_delay, char *notification_period, int notifications_enabled, char *check_command, int checks_enabled, int accept_passive_checks, char *event_handler, int event_handler_enabled, int flap_detection_enabled, double low_flap_threshold, double high_flap_threshold, int flap_detection_on_up, int flap_detection_on_down, int flap_detection_on_unreachable, int stalk_on_up, int stalk_on_down, int stalk_on_unreachable, int process_perfdata, int failure_prediction_enabled, char *failure_prediction_options, int check_freshness, int freshness_threshold, char *notes, char *notes_url, char *action_url, char *icon_image, char *icon_image_alt, char *vrml_image, char *statusmap_image, int x_2d, int y_2d, int have_2d_coords, double x_3d, double y_3d, double z_3d, int have_3d_coords, int should_be_drawn, int retain_status_information, int retain_nonstatus_information, int obsess_over_host){
+host *add_host(char *name, char *display_name, char *alias, char *address, char *address6, char *check_period, int initial_state, double check_interval, double retry_interval, int max_attempts, int notify_up, int notify_down, int notify_unreachable, int notify_flapping, int notify_downtime, double notification_interval, double first_notification_delay, char *notification_period, int notifications_enabled, char *check_command, int checks_enabled, int accept_passive_checks, char *event_handler, int event_handler_enabled, int flap_detection_enabled, double low_flap_threshold, double high_flap_threshold, int flap_detection_on_up, int flap_detection_on_down, int flap_detection_on_unreachable, int stalk_on_up, int stalk_on_down, int stalk_on_unreachable, int process_perfdata, int failure_prediction_enabled, char *failure_prediction_options, int check_freshness, int freshness_threshold, char *notes, char *notes_url, char *action_url, char *icon_image, char *icon_image_alt, char *vrml_image, char *statusmap_image, int x_2d, int y_2d, int have_2d_coords, double x_3d, double y_3d, double z_3d, int have_3d_coords, int should_be_drawn, int retain_status_information, int retain_nonstatus_information, int obsess_over_host){
 	host *new_host=NULL;
 	int result=OK;
 #ifdef NSCORE
@@ -676,6 +676,7 @@
 	new_host->name=NULL;
 	new_host->alias=NULL;
 	new_host->address=NULL;
+	new_host->address6=NULL;
 	new_host->check_period=NULL;
 	new_host->notification_period=NULL;
 	new_host->host_check_command=NULL;
@@ -719,6 +720,8 @@
 		result=ERROR;
 	if((new_host->address=(char *)strdup(address))==NULL)
 		result=ERROR;
+	if((new_host->address6=(char *)strdup(address6))==NULL)
+		result=ERROR;
 	if(check_period){
 		if((new_host->check_period=(char *)strdup(check_period))==NULL)
 			result=ERROR;
@@ -901,6 +904,7 @@
 		my_free(new_host->notification_period);
 		my_free(new_host->check_period);
 		my_free(new_host->address);
+		my_free(new_host->address6);
 		my_free(new_host->alias);
 		my_free(new_host->display_name);
 		my_free(new_host->name);
@@ -3722,6 +3726,7 @@
 		my_free(this_host->display_name);
 		my_free(this_host->alias);
 		my_free(this_host->address);
+		my_free(this_host->address6);
 #ifdef NSCORE
 		my_free(this_host->plugin_output);
 		my_free(this_host->long_plugin_output);
diff -Naur nagios-3.2.3-old/include/macros.h nagios-3.2.3/include/macros.h
--- nagios-3.2.3-old/include/macros.h	2008-11-30 19:22:59.000000000 +0200
+++ nagios-3.2.3/include/macros.h	2010-12-13 09:42:09.000000000 +0200
@@ -40,7 +40,7 @@
 
 #define MAX_USER_MACROS				256	/* maximum number of $USERx$ macros */
 
-#define MACRO_X_COUNT				153	/* size of macro_x[] array */
+#define MACRO_X_COUNT				154	/* size of macro_x[] array */
 
 #define MACRO_HOSTNAME				0
 #define MACRO_HOSTALIAS				1
@@ -195,6 +195,7 @@
 #define MACRO_LASTHOSTSTATEID                   150
 #define MACRO_LASTSERVICESTATE                  151
 #define MACRO_LASTSERVICESTATEID                152
+#define MACRO_HOSTADDRESS6			153
 
 
 
diff -Naur nagios-3.2.3-old/include/objects.h nagios-3.2.3/include/objects.h
--- nagios-3.2.3-old/include/objects.h	2009-05-17 15:54:28.000000000 +0300
+++ nagios-3.2.3/include/objects.h	2010-12-13 09:42:09.000000000 +0200
@@ -269,6 +269,7 @@
 	char    *display_name;
 	char	*alias;
 	char    *address;
+	char    *address6;
         hostsmember *parent_hosts;
         hostsmember *child_hosts;
 	servicesmember *services;
@@ -639,7 +640,7 @@
 commandsmember *add_service_notification_command_to_contact(contact *,char *);				/* adds a service notification command to a contact definition */
 commandsmember *add_host_notification_command_to_contact(contact *,char *);				/* adds a host notification command to a contact definition */
 customvariablesmember *add_custom_variable_to_contact(contact *,char *,char *);                         /* adds a custom variable to a service definition */
-host *add_host(char *,char *,char *,char *,char *,int,double,double,int,int,int,int,int,int,double,double,char *,int,char *,int,int,char *,int,int,double,double,int,int,int,int,int,int,int,int,char *,int,int,char *,char *,char *,char *,char *,char *,char *,int,int,int,double,double,double,int,int,int,int,int);	/* adds a host definition */
+host *add_host(char *,char *,char *,char *,char *,char *,int,double,double,int,int,int,int,int,int,double,double,char *,int,char *,int,int,char *,int,int,double,double,int,int,int,int,int,int,int,int,char *,int,int,char *,char *,char *,char *,char *,char *,char *,int,int,int,double,double,double,int,int,int,int,int);	/* adds a host definition */
 hostsmember *add_parent_host_to_host(host *,char *);							/* adds a parent host to a host definition */
 hostsmember *add_child_link_to_host(host *,host *);						        /* adds a child host to a host definition */
 contactgroupsmember *add_contactgroup_to_host(host *,char *);					        /* adds a contactgroup to a host definition */
diff -Naur nagios-3.2.3-old/t/Makefile nagios-3.2.3/t/Makefile
--- nagios-3.2.3-old/t/Makefile	1970-01-01 03:00:00.000000000 +0300
+++ nagios-3.2.3/t/Makefile	2010-12-13 09:42:30.000000000 +0200
@@ -0,0 +1,11 @@
+# Makefile for Nagios tests using perl
+
+all: 
+
+test:
+	prove *.t
+
+clean:
+
+distclean:
+
diff -Naur nagios-3.2.3-old/t-tap/test_events.c nagios-3.2.3/t-tap/test_events.c
--- nagios-3.2.3-old/t-tap/test_events.c	2010-09-21 19:43:14.000000000 +0300
+++ nagios-3.2.3/t-tap/test_events.c	2010-12-13 09:42:09.000000000 +0200
@@ -231,6 +231,7 @@
 		host1=(host *)malloc(sizeof(host));
 	host1->name=strdup("Host1");
 	host1->address=strdup("127.0.0.1");
+	host1->address6=strdup("::1");
 	host1->retry_interval=1;
 	host1->check_interval=5;
 	host1->check_options=0;
diff -Naur nagios-3.2.3-old/xdata/xodtemplate.c nagios-3.2.3/xdata/xodtemplate.c
--- nagios-3.2.3-old/xdata/xodtemplate.c	2010-03-29 17:51:38.000000000 +0300
+++ nagios-3.2.3/xdata/xodtemplate.c	2010-12-15 17:48:08.000000000 +0200
@@ -1492,6 +1492,7 @@
 		new_host->have_display_name=FALSE;
 		new_host->alias=NULL;
 		new_host->address=NULL;
+		new_host->address6=NULL;
 		new_host->parents=NULL;
 		new_host->have_parents=FALSE;
 		new_host->host_groups=NULL;
@@ -3366,6 +3367,10 @@
 			if((temp_host->address=(char *)strdup(value))==NULL)
 				result=ERROR;
 		        }
+		else if(!strcmp(variable,"address6")){
+			if((temp_host->address6=(char *)strdup(value))==NULL)
+				result=ERROR;
+		        }
 		else if(!strcmp(variable,"parents")){
 			if(strcmp(value,XODTEMPLATE_NULL)){
 				if((temp_host->parents=(char *)strdup(value))==NULL)
@@ -7869,6 +7874,8 @@
 			this_host->alias=(char *)strdup(template_host->alias);
 		if(this_host->address==NULL && template_host->address!=NULL)
 			this_host->address=(char *)strdup(template_host->address);
+		if(this_host->address6==NULL && template_host->address6!=NULL)
+			this_host->address6=(char *)strdup(template_host->address6);
 
 		xodtemplate_get_inherited_string(&template_host->have_parents,&template_host->parents,&this_host->have_parents,&this_host->parents);
 		xodtemplate_get_inherited_string(&template_host->have_host_groups,&template_host->host_groups,&this_host->have_host_groups,&this_host->host_groups);
@@ -10464,9 +10471,11 @@
 		this_host->alias=(char *)strdup(this_host->host_name);
 	if(this_host->address==NULL && this_host->host_name!=NULL)
 		this_host->address=(char *)strdup(this_host->host_name);
+	if(this_host->address6==NULL && this_host->host_name!=NULL)
+		this_host->address6=(char *)strdup(this_host->host_name);
 
 	/* add the host definition */
-	new_host=add_host(this_host->host_name,this_host->display_name,this_host->alias,(this_host->address==NULL)?this_host->host_name:this_host->address,this_host->check_period,this_host->initial_state,this_host->check_interval,this_host->retry_interval,this_host->max_check_attempts,this_host->notify_on_recovery,this_host->notify_on_down,this_host->notify_on_unreachable,this_host->notify_on_flapping,this_host->notify_on_downtime,this_host->notification_interval,this_host->first_notification_delay,this_host->notification_period,this_host->notifications_enabled,this_host->check_command,this_host->active_checks_enabled,this_host->passive_checks_enabled,this_host->event_handler,this_host->event_handler_enabled,this_host->flap_detection_enabled,this_host->low_flap_threshold,this_host->high_flap_threshold,this_host->flap_detection_on_up,this_host->flap_detection_on_down,this_host->flap_detection_on_unreachable,this_host->stalk_on_up,this_host->stalk_on_down,this_host->stalk_on_unreachable,this_host->process_perf_data,this_host->failure_prediction_enabled,this_host->failure_prediction_options,this_host->check_freshness,this_host->freshness_threshold,this_host->notes,this_host->notes_url,this_host->action_url,this_host->icon_image,this_host->icon_image_alt,this_host->vrml_image,this_host->statusmap_image,this_host->x_2d,this_host->y_2d,this_host->have_2d_coords,this_host->x_3d,this_host->y_3d,this_host->z_3d,this_host->have_3d_coords,TRUE,this_host->retain_status_information,this_host->retain_nonstatus_information,this_host->obsess_over_host);
+	new_host=add_host(this_host->host_name,this_host->display_name,this_host->alias,(this_host->address==NULL)?this_host->host_name:this_host->address,(this_host->address6==NULL)?this_host->host_name:this_host->address6,this_host->check_period,this_host->initial_state,this_host->check_interval,this_host->retry_interval,this_host->max_check_attempts,this_host->notify_on_recovery,this_host->notify_on_down,this_host->notify_on_unreachable,this_host->notify_on_flapping,this_host->notify_on_downtime,this_host->notification_interval,this_host->first_notification_delay,this_host->notification_period,this_host->notifications_enabled,this_host->check_command,this_host->active_checks_enabled,this_host->passive_checks_enabled,this_host->event_handler,this_host->event_handler_enabled,this_host->flap_detection_enabled,this_host->low_flap_threshold,this_host->high_flap_threshold,this_host->flap_detection_on_up,this_host->flap_detection_on_down,this_host->flap_detection_on_unreachable,this_host->stalk_on_up,this_host->stalk_on_down,this_host->stalk_on_unreachable,this_host->process_perf_data,this_host->failure_prediction_enabled,this_host->failure_prediction_options,this_host->check_freshness,this_host->freshness_threshold,this_host->notes,this_host->notes_url,this_host->action_url,this_host->icon_image,this_host->icon_image_alt,this_host->vrml_image,this_host->statusmap_image,this_host->x_2d,this_host->y_2d,this_host->have_2d_coords,this_host->x_3d,this_host->y_3d,this_host->z_3d,this_host->have_3d_coords,TRUE,this_host->retain_status_information,this_host->retain_nonstatus_information,this_host->obsess_over_host);
 
 
 	/* return with an error if we couldn't add the host */
@@ -11910,6 +11919,8 @@
 			fprintf(fp,"\talias\t%s\n",temp_host->alias);
 		if(temp_host->address)
 			fprintf(fp,"\taddress\t%s\n",temp_host->address);
+		if(temp_host->address6)
+			fprintf(fp,"\taddress6\t%s\n",temp_host->address6);
 		if(temp_host->parents)
 			fprintf(fp,"\tparents\t%s\n",temp_host->parents);
 		if(temp_host->check_period)
@@ -13113,6 +13124,7 @@
 		my_free(this_host->host_name);
 		my_free(this_host->alias);
 		my_free(this_host->address);
+		my_free(this_host->address6);
 		my_free(this_host->parents);
 		my_free(this_host->host_groups);
 		my_free(this_host->check_command);
diff -Naur nagios-3.2.3-old/xdata/xodtemplate.h nagios-3.2.3/xdata/xodtemplate.h
--- nagios-3.2.3-old/xdata/xodtemplate.h	2009-05-20 02:41:48.000000000 +0300
+++ nagios-3.2.3/xdata/xodtemplate.h	2010-12-13 09:42:09.000000000 +0200
@@ -229,6 +229,7 @@
 	char      *display_name;
 	char      *alias;
 	char      *address;
+	char      *address6;
 	char      *parents;
 	char      *host_groups;
 	char      *check_command;
