diff -rupN nagios-3.2.3-org/cgi/config.c nagios-3.2.3/cgi/config.c
--- nagios-3.2.3-org/cgi/config.c	Wed Sep  1 16:19:59 2010
+++ nagios-3.2.3/cgi/config.c	Fri Jan  7 14:17:06 2011
@@ -501,7 +501,11 @@ void display_hosts(void){
 	printf("<TH CLASS='data'>Failure Prediction Options</TH>");
 	printf("<TH CLASS='data'>Notes</TH>");
 	printf("<TH CLASS='data'>Notes URL</TH>");
+	printf("<TH CLASS='data'>Notes Image</TH>");
+	printf("<TH CLASS='data'>Notes Image Alt</TH>");
 	printf("<TH CLASS='data'>Action URL</TH>");
+	printf("<TH CLASS='data'>Action Image</TH>");
+	printf("<TH CLASS='data'>Action Image Alt</TH>");
 	printf("<TH CLASS='data'>2-D Coords</TH>");
 	printf("<TH CLASS='data'>3-D Coords</TH>");
 	printf("<TH CLASS='data'>Statusmap Image</TH>");
@@ -723,8 +727,16 @@ void display_hosts(void){
 
 		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_host->notes_url==NULL)?"&nbsp;":html_encode(temp_host->notes_url,FALSE));
 
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_host->notes_image==NULL)?"&nbsp;":html_encode(temp_host->notes_image,FALSE));
+
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_host->notes_image_alt==NULL)?"&nbsp;":html_encode(temp_host->notes_image_alt,FALSE));
+
 		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_host->action_url==NULL)?"&nbsp;":html_encode(temp_host->action_url,FALSE));
 
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_host->action_image==NULL)?"&nbsp;":html_encode(temp_host->action_image,FALSE));
+
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_host->action_image_alt==NULL)?"&nbsp;":html_encode(temp_host->action_image_alt,FALSE));
+
 		if(temp_host->have_2d_coords==FALSE)
 			printf("<TD CLASS='%s'>&nbsp;</TD>",bg_class);
 		else
@@ -806,7 +818,11 @@ void display_hostgroups(void){
 	printf("<TH CLASS='data'>Host Members</TH>");
 	printf("<TH CLASS='data'>Notes</TH>");
 	printf("<TH CLASS='data'>Notes URL</TH>");
+	printf("<TH CLASS='data'>Notes Image</TH>");
+	printf("<TH CLASS='data'>Notes Image Alt</TH>");
 	printf("<TH CLASS='data'>Action URL</TH>");
+	printf("<TH CLASS='data'>Action Image</TH>");
+	printf("<TH CLASS='data'>Action Image Alt</TH>");
 	printf("</TR>\n");
 
 	/* check all the hostgroups... */
@@ -842,8 +858,16 @@ void display_hostgroups(void){
 
 		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_hostgroup->notes_url==NULL)?"&nbsp;":html_encode(temp_hostgroup->notes_url,FALSE));
 
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_hostgroup->notes_image==NULL)?"&nbsp;":html_encode(temp_hostgroup->notes_image,FALSE));
+
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_hostgroup->notes_image_alt==NULL)?"&nbsp;":html_encode(temp_hostgroup->notes_image_alt,FALSE));
+
 		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_hostgroup->action_url==NULL)?"&nbsp;":html_encode(temp_hostgroup->action_url,FALSE));
 
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_hostgroup->action_image==NULL)?"&nbsp;":html_encode(temp_hostgroup->action_image,FALSE));
+
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_hostgroup->action_image_alt==NULL)?"&nbsp;":html_encode(temp_hostgroup->action_image_alt,FALSE));
+
 		printf("</TR>\n");
 	        }
 
@@ -881,7 +905,11 @@ void display_servicegroups(void){
 	printf("<TH CLASS='data'>Service Members</TH>");
 	printf("<TH CLASS='data'>Notes</TH>");
 	printf("<TH CLASS='data'>Notes URL</TH>");
+	printf("<TH CLASS='data'>Notes Image</TH>");
+	printf("<TH CLASS='data'>Notes Image Alt</TH>");
 	printf("<TH CLASS='data'>Action URL</TH>");
+	printf("<TH CLASS='data'>Action Image</TH>");
+	printf("<TH CLASS='data'>Action Image Alt</TH>");
 	printf("</TR>\n");
 
 	/* check all the servicegroups... */
@@ -919,8 +947,16 @@ void display_servicegroups(void){
 
 		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_servicegroup->notes_url==NULL)?"&nbsp;":html_encode(temp_servicegroup->notes_url,FALSE));
 
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_servicegroup->notes_image==NULL)?"&nbsp;":html_encode(temp_servicegroup->notes_image,FALSE));
+
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_servicegroup->notes_image_alt==NULL)?"&nbsp;":html_encode(temp_servicegroup->notes_image_alt,FALSE));
+
 		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_servicegroup->action_url==NULL)?"&nbsp;":html_encode(temp_servicegroup->action_url,FALSE));
 
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_servicegroup->action_image==NULL)?"&nbsp;":html_encode(temp_servicegroup->action_image,FALSE));
+
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_servicegroup->action_image_alt==NULL)?"&nbsp;":html_encode(temp_servicegroup->action_image_alt,FALSE));
+
 		printf("</TR>\n");
 	        }
 
@@ -1246,7 +1282,11 @@ void display_services(void){
 	printf("<TH CLASS='data'>Failure Prediction Options</TH>");
 	printf("<TH CLASS='data'>Notes</TH>");
 	printf("<TH CLASS='data'>Notes URL</TH>");
+	printf("<TH CLASS='data'>Notes Image</TH>");
+	printf("<TH CLASS='data'>Notes Image Alt</TH>");
 	printf("<TH CLASS='data'>Action URL</TH>");
+	printf("<TH CLASS='data'>Action Image</TH>");
+	printf("<TH CLASS='data'>Action Image Alt</TH>");
 	printf("<TH CLASS='data'>Logo Image</TH>");
 	printf("<TH CLASS='data'>Image Alt</TH>");
 	printf("<TH CLASS='data'>Retention Options</TH>");
@@ -1467,7 +1507,15 @@ void display_services(void){
 
 		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_service->notes_url==NULL)?"&nbsp;":html_encode(temp_service->notes_url,FALSE));
 
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_service->notes_image==NULL)?"&nbsp;":html_encode(temp_service->notes_image,FALSE));
+
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_service->notes_image_alt==NULL)?"&nbsp;":html_encode(temp_service->notes_image_alt,FALSE));
+
 		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_service->action_url==NULL)?"&nbsp;":html_encode(temp_service->action_url,FALSE));
+
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_service->action_image==NULL)?"&nbsp;":html_encode(temp_service->action_image,FALSE));
+
+		printf("<TD CLASS='%s'>%s</TD>",bg_class,(temp_service->action_image_alt==NULL)?"&nbsp;":html_encode(temp_service->action_image_alt,FALSE));
 
 		if(temp_service->icon_image==NULL)
 			printf("<TD CLASS='%s'>&nbsp;</TD>",bg_class);
diff -rupN nagios-3.2.3-org/cgi/extinfo.c nagios-3.2.3/cgi/extinfo.c
--- nagios-3.2.3-org/cgi/extinfo.c	Fri Jun 18 16:25:30 2010
+++ nagios-3.2.3/cgi/extinfo.c	Fri Jan  7 14:40:05 2011
@@ -439,7 +439,7 @@ int main(void){
 				process_macros(temp_host->action_url,&processed_string,0);
 				printf("%s",processed_string);
 				free(processed_string);
-				printf("' TARGET='%s'><img src='%s%s' border=0 alt='Perform Additional Actions On This Host' title='Perform Additional Actions On This Host'></A>\n",(action_url_target==NULL)?"_blank":action_url_target,url_images_path,ACTION_ICON);
+				printf("' TARGET='%s'><img src='%s%s' border=0 alt='%s' title='%s'></A>\n",(action_url_target==NULL)?"_blank":action_url_target,url_images_path,temp_host->action_image==NULL?ACTION_ICON:temp_host->action_image,temp_host->action_image_alt==NULL?"Perform Additional Actions On This Host":temp_host->action_image_alt,temp_host->action_image_alt==NULL?"Perform Additional Actions On This Host":temp_host->action_image_alt);
 				printf("<BR CLEAR=ALL><FONT SIZE=-1><I>Extra Actions</I></FONT><BR CLEAR=ALL><BR CLEAR=ALL>\n");
 				printf("</TD></TR>\n");
 			        }
@@ -450,7 +450,7 @@ int main(void){
 				printf("%s",processed_string);
 				free(processed_string);
 				/*print_extra_host_url(temp_host->name,temp_host->notes_url);*/
-				printf("' TARGET='%s'><img src='%s%s' border=0 alt='View Additional Notes For This Host' title='View Additional Notes For This Host'></A>\n",(notes_url_target==NULL)?"_blank":notes_url_target,url_images_path,NOTES_ICON);
+				printf("' TARGET='%s'><img src='%s%s' border=0 alt='%s' title='%s'></A>\n",(notes_url_target==NULL)?"_blank":notes_url_target,url_images_path,temp_host->notes_image==NULL?NOTES_ICON:temp_host->notes_image,temp_host->notes_image_alt==NULL?"View Additional Notes For This Host":temp_host->notes_image_alt,temp_host->notes_image_alt==NULL?"View Additional Notes For This Host":temp_host->notes_image_alt);
 				printf("<BR CLEAR=ALL><FONT SIZE=-1><I>Extra Notes</I></FONT><BR CLEAR=ALL><BR CLEAR=ALL>\n");
 				printf("</TD></TR>\n");
 			        }
@@ -464,7 +464,7 @@ int main(void){
 				process_macros(temp_service->action_url,&processed_string,0);
 				printf("%s",processed_string);
 				free(processed_string);
-				printf("' TARGET='%s'><img src='%s%s' border=0 alt='Perform Additional Actions On This Service' title='Perform Additional Actions On This Service'></A>\n",(action_url_target==NULL)?"_blank":action_url_target,url_images_path,ACTION_ICON);
+				printf("' TARGET='%s'><img src='%s%s' border=0 alt='%s' title='%s'></A>\n",(action_url_target==NULL)?"_blank":action_url_target,url_images_path,temp_service->action_image==NULL?ACTION_ICON:temp_service->action_image,temp_service->action_image_alt==NULL?"Perform Additional Actions On This Service":temp_service->action_image_alt,temp_service->action_image_alt==NULL?"Perform Additional Actions On This Service":temp_service->action_image_alt);
 				printf("<BR CLEAR=ALL><FONT SIZE=-1><I>Extra Actions</I></FONT><BR CLEAR=ALL><BR CLEAR=ALL>\n");
 			        }
 			if(temp_service->notes_url!=NULL && strcmp(temp_service->notes_url,"")){
@@ -472,7 +472,7 @@ int main(void){
 				process_macros(temp_service->notes_url,&processed_string,0);
 				printf("%s",processed_string);
 				free(processed_string);
-				printf("' TARGET='%s'><img src='%s%s' border=0 alt='View Additional Notes For This Service' title='View Additional Notes For This Service'></A>\n",(notes_url_target==NULL)?"_blank":notes_url_target,url_images_path,NOTES_ICON);
+				printf("' TARGET='%s'><img src='%s%s' border=0 alt='%s' title='%s'></A>\n",(notes_url_target==NULL)?"_blank":notes_url_target,url_images_path,temp_service->notes_image==NULL?NOTES_ICON:temp_service->notes_image,temp_service->notes_image_alt==NULL?"View Additional Notes For This Service":temp_service->notes_image_alt,temp_service->notes_image_alt==NULL?"View Additional Notes For This Service":temp_service->notes_image_alt);
 				printf("<BR CLEAR=ALL><FONT SIZE=-1><I>Extra Notes</I></FONT><BR CLEAR=ALL><BR CLEAR=ALL>\n");
 			        }
 			printf("</TD></TR></TABLE>\n");
@@ -484,7 +484,7 @@ int main(void){
 				printf("<TR><TD ALIGN='right'>\n");
 				printf("<A HREF='");
 				print_extra_hostgroup_url(temp_hostgroup->group_name,temp_hostgroup->action_url);
-				printf("' TARGET='%s'><img src='%s%s' border=0 alt='Perform Additional Actions On This Hostgroup' title='Perform Additional Actions On This Hostgroup'></A>\n",(action_url_target==NULL)?"_blank":action_url_target,url_images_path,ACTION_ICON);
+				printf("' TARGET='%s'><img src='%s%s' border=0 alt='%s' title='%s'></A>\n",(action_url_target==NULL)?"_blank":action_url_target,url_images_path,temp_hostgroup->action_image==NULL?ACTION_ICON:temp_hostgroup->action_image,temp_hostgroup->action_image_alt==NULL?"Perform Additional Actions On This Hostgroup":temp_hostgroup->action_image_alt,temp_hostgroup->action_image_alt==NULL?"Perform Additional Actions On This Hostgroup":temp_hostgroup->action_image_alt);
 				printf("<BR CLEAR=ALL><FONT SIZE=-1><I>Extra Actions</I></FONT><BR CLEAR=ALL><BR CLEAR=ALL>\n");
 				printf("</TD></TR>\n");
 			        }
@@ -492,7 +492,7 @@ int main(void){
 				printf("<TR><TD ALIGN='right'>\n");
 				printf("<A HREF='");
 				print_extra_hostgroup_url(temp_hostgroup->group_name,temp_hostgroup->notes_url);
-				printf("' TARGET='%s'><img src='%s%s' border=0 alt='View Additional Notes For This Hostgroup' title='View Additional Notes For This Hostgroup'></A>\n",(notes_url_target==NULL)?"_blank":notes_url_target,url_images_path,NOTES_ICON);
+				printf("' TARGET='%s'><img src='%s%s' border=0 alt='%s' title='%s'></A>\n",(notes_url_target==NULL)?"_blank":notes_url_target,url_images_path,temp_hostgroup->notes_image==NULL?NOTES_ICON:temp_hostgroup->notes_image,temp_hostgroup->notes_image_alt==NULL?"View Additional Notes For This Hostgroup":temp_hostgroup->notes_image_alt,temp_hostgroup->notes_image_alt==NULL?"View Additional Notes For This Hostgroup":temp_hostgroup->notes_image_alt);
 				printf("<BR CLEAR=ALL><FONT SIZE=-1><I>Extra Notes</I></FONT><BR CLEAR=ALL><BR CLEAR=ALL>\n");
 				printf("</TD></TR>\n");
 			        }
@@ -504,13 +504,13 @@ int main(void){
 			if(temp_servicegroup->action_url!=NULL && strcmp(temp_servicegroup->action_url,"")){
 				printf("<A HREF='");
 				print_extra_servicegroup_url(temp_servicegroup->group_name,temp_servicegroup->action_url);
-				printf("' TARGET='%s'><img src='%s%s' border=0 alt='Perform Additional Actions On This Servicegroup' title='Perform Additional Actions On This Servicegroup'></A>\n",(action_url_target==NULL)?"_blank":action_url_target,url_images_path,ACTION_ICON);
+				printf("' TARGET='%s'><img src='%s%s' border=0 alt='%s' title='%s'></A>\n",(action_url_target==NULL)?"_blank":action_url_target,url_images_path,temp_servicegroup->action_image==NULL?ACTION_ICON:temp_servicegroup->action_image,temp_servicegroup->action_image_alt==NULL?"Perform Additional Actions On This Servicegroup":temp_servicegroup->action_image_alt,temp_servicegroup->action_image_alt==NULL?"Perform Additional Actions On This Servicegroup":temp_servicegroup->action_image_alt);
 				printf("<BR CLEAR=ALL><FONT SIZE=-1><I>Extra Actions</I></FONT><BR CLEAR=ALL><BR CLEAR=ALL>\n");
 			        }
 			if(temp_servicegroup->notes_url!=NULL && strcmp(temp_servicegroup->notes_url,"")){
 				printf("<A HREF='");
 				print_extra_servicegroup_url(temp_servicegroup->group_name,temp_servicegroup->notes_url);
-				printf("' TARGET='%s'><img src='%s%s' border=0 alt='View Additional Notes For This Servicegroup' title='View Additional Notes For This Servicegroup'></A>\n",(notes_url_target==NULL)?"_blank":notes_url_target,url_images_path,NOTES_ICON);
+				printf("' TARGET='%s'><img src='%s%s' border=0 alt='%s' title='%s'></A>\n",(notes_url_target==NULL)?"_blank":notes_url_target,url_images_path,temp_servicegroup->notes_image==NULL?NOTES_ICON:temp_servicegroup->notes_image,temp_servicegroup->notes_image_alt==NULL?"View Additional Notes For This Servicegroup":temp_servicegroup->notes_image_alt,temp_servicegroup->notes_image_alt==NULL?"View Additional Notes For This Servicegroup":temp_servicegroup->notes_image_alt);
 				printf("<BR CLEAR=ALL><FONT SIZE=-1><I>Extra Notes</I></FONT><BR CLEAR=ALL><BR CLEAR=ALL>\n");
 			        }
 			printf("</TABLE>\n");
diff -rupN nagios-3.2.3-org/cgi/status.c nagios-3.2.3/cgi/status.c
--- nagios-3.2.3-org/cgi/status.c	Tue Sep 21 17:05:31 2010
+++ nagios-3.2.3/cgi/status.c	Fri Jan  7 14:22:21 2011
@@ -1627,7 +1627,7 @@ void show_service_detail(void){
 					printf("%s",processed_string);
 					free(processed_string);
 					printf("' TARGET='%s'>",(notes_url_target==NULL)?"_blank":notes_url_target);
-					printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,NOTES_ICON,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,"View Extra Host Notes","View Extra Host Notes");
+					printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,temp_host->notes_image==NULL?NOTES_ICON:temp_host->notes_image,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,temp_host->notes_image_alt==NULL?"View Extra Host Notes":temp_host->notes_image_alt,temp_host->notes_image_alt==NULL?"View Extra Host Notes":temp_host->notes_image_alt);
 					printf("</A>");
 					printf("</TD>\n");
 				        }
@@ -1638,7 +1638,7 @@ void show_service_detail(void){
 					printf("%s",processed_string);
 					free(processed_string);
 					printf("' TARGET='%s'>",(action_url_target==NULL)?"_blank":action_url_target);
-					printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,ACTION_ICON,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,"Perform Extra Host Actions","Perform Extra Host Actions");
+					printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,(temp_host->action_image==NULL)?ACTION_ICON:temp_host->action_image,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,temp_host->action_image_alt==NULL?"Perform Extra Host Actions":temp_host->action_image_alt,temp_host->action_image_alt==NULL?"Perform Extra Host Actions":temp_host->action_image_alt);
 					printf("</A>");
 					printf("</TD>\n");
 				        }
@@ -1721,7 +1721,7 @@ void show_service_detail(void){
 				printf("%s",processed_string);
 				free(processed_string);
 				printf("' TARGET='%s'>",(notes_url_target==NULL)?"_blank":notes_url_target);
-				printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,NOTES_ICON,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,"View Extra Service Notes","View Extra Service Notes");
+				printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,temp_service->notes_image==NULL?NOTES_ICON:temp_service->notes_image,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,temp_service->notes_image_alt==NULL?"View Extra Service Notes":temp_service->notes_image_alt,temp_service->notes_image_alt==NULL?"View Extra Service Notes":temp_service->notes_image_alt);
 				printf("</A>");
 				printf("</TD>\n");
 				}
@@ -1732,7 +1732,7 @@ void show_service_detail(void){
 				printf("%s",processed_string);
 				free(processed_string);
 				printf("' TARGET='%s'>",(action_url_target==NULL)?"_blank":action_url_target);
-				printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,ACTION_ICON,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,"Perform Extra Service Actions","Perform Extra Service Actions");
+				printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,(temp_service->action_image==NULL)?ACTION_ICON:temp_service->action_image,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,temp_service->action_image_alt==NULL?"Perform Extra Service Actions":temp_service->action_image_alt,temp_service->action_image_alt==NULL?"Perform Extra Service Actions":temp_service->action_image_alt);
 				printf("</A>");
 				printf("</TD>\n");
 				}
@@ -2120,7 +2120,7 @@ void show_host_detail(void){
 				printf("%s",processed_string);
 				free(processed_string);
 				printf("' TARGET='%s'>",(notes_url_target==NULL)?"_blank":notes_url_target);
-				printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,NOTES_ICON,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,"View Extra Host Notes","View Extra Host Notes");
+				printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,temp_host->notes_image==NULL?NOTES_ICON:temp_host->notes_image,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,temp_host->notes_image_alt==NULL?"View Extra Host Notes":temp_host->notes_image_alt,temp_host->notes_image_alt==NULL?"View Extra Host Notes":temp_host->notes_image_alt);
 				printf("</A>");
 				printf("</TD>\n");
 			        }
@@ -2131,7 +2131,7 @@ void show_host_detail(void){
 				printf("%s",processed_string);
 				free(processed_string);
 				printf("' TARGET='%s'>",(action_url_target==NULL)?"_blank":action_url_target);
-				printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,ACTION_ICON,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,"Perform Extra Host Actions","Perform Extra Host Actions");
+				printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,(temp_host->action_image==NULL)?ACTION_ICON:temp_host->action_image,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,temp_host->action_image_alt==NULL?"Perform Extra Host Actions":temp_host->action_image_alt,temp_host->action_image_alt==NULL?"Perform Extra Host Actions":temp_host->action_image_alt);
 				printf("</A>");
 				printf("</TD>\n");
 			        }
@@ -3246,7 +3246,7 @@ void show_servicegroup_grid(servicegroup *temp_service
 			printf("%s",processed_string);
 			free(processed_string);
 			printf("' TARGET='%s'>",(notes_url_target==NULL)?"_blank":notes_url_target);
-			printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,NOTES_ICON,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,"View Extra Host Notes","View Extra Host Notes");
+			printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,temp_host->notes_image==NULL?NOTES_ICON:temp_host->notes_image,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,temp_host->notes_image_alt==NULL?"View Extra Host Notes":temp_host->notes_image_alt,temp_host->notes_image_alt==NULL?"View Extra Host Notes":temp_host->notes_image_alt);
 			printf("</A>");
 		        }
 		if(temp_host->action_url!=NULL){
@@ -3255,7 +3255,7 @@ void show_servicegroup_grid(servicegroup *temp_service
 			printf("%s",processed_string);
 			free(processed_string);
 			printf("' TARGET='%s'>",(action_url_target==NULL)?"blank":action_url_target);
-			printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,ACTION_ICON,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,"Perform Extra Host Actions","Perform Extra Host Actions");
+			printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,(temp_host->action_image==NULL)?ACTION_ICON:temp_host->action_image,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,temp_host->action_image_alt==NULL?"Perform Extra Host Actions":temp_host->action_image_alt,temp_host->action_image_alt==NULL?"Perform Extra Host Actions":temp_host->action_image_alt);
 			printf("</A>");
 		        }
 
@@ -3550,7 +3550,7 @@ void show_servicegroup_hostgroup_member_overview(hosts
 		printf("%s",processed_string);
 		free(processed_string);
 		printf("' TARGET='%s'>",(notes_url_target==NULL)?"_blank":notes_url_target);
-		printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,NOTES_ICON,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,"View Extra Host Notes","View Extra Host Notes");
+		printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,temp_host->notes_image==NULL?NOTES_ICON:temp_host->notes_image,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,temp_host->notes_image_alt==NULL?"View Extra Host Notes":temp_host->notes_image_alt,temp_host->notes_image_alt==NULL?"View Extra Host Notes":temp_host->notes_image_alt);
 		printf("</A>");
 	        }
 	if(temp_host->action_url!=NULL){
@@ -3559,7 +3559,7 @@ void show_servicegroup_hostgroup_member_overview(hosts
 		printf("%s",processed_string);
 		free(processed_string);
 		printf("' TARGET='%s'>",(action_url_target==NULL)?"_blank":action_url_target);
-		printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,ACTION_ICON,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,"Perform Extra Host Actions","Perform Extra Host Actions");
+		printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,(temp_host->action_image==NULL)?ACTION_ICON:temp_host->action_image,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,temp_host->action_image_alt==NULL?"Perform Extra Host Actions":temp_host->action_image_alt,temp_host->action_image_alt==NULL?"Perform Extra Host Actions":temp_host->action_image_alt);
 		printf("</A>");
 	        }
 	printf("<a href='%s?host=%s'><img src='%s%s' border=0 alt='View Service Details For This Host' title='View Service Details For This Host'></a>\n",STATUS_CGI,url_encode(hststatus->host_name),url_images_path,STATUS_DETAIL_ICON);
@@ -4475,7 +4475,7 @@ void show_hostgroup_grid(hostgroup *temp_hostgroup){
 			printf("%s",processed_string);
 			free(processed_string);
 			printf("' TARGET='%s'>",(notes_url_target==NULL)?"_blank":notes_url_target);
-			printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,NOTES_ICON,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,"View Extra Host Notes","View Extra Host Notes");
+			printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,temp_host->notes_image==NULL?NOTES_ICON:temp_host->notes_image,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,temp_host->notes_image_alt==NULL?"View Extra Host Notes":temp_host->notes_image_alt,temp_host->notes_image_alt==NULL?"View Extra Host Notes":temp_host->notes_image_alt);
 			printf("</A>");
 		        }
 		if(temp_host->action_url!=NULL){
@@ -4484,7 +4484,7 @@ void show_hostgroup_grid(hostgroup *temp_hostgroup){
 			printf("%s",processed_string);
 			free(processed_string);
 			printf("' TARGET='%s'>",(action_url_target==NULL)?"_blank":action_url_target);
-			printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,ACTION_ICON,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,"Perform Extra Host Actions","Perform Extra Host Actions");
+			printf("<IMG SRC='%s%s' BORDER=0 WIDTH=%d HEIGHT=%d ALT='%s' TITLE='%s'>",url_images_path,(temp_host->action_image==NULL)?ACTION_ICON:temp_host->action_image,STATUS_ICON_WIDTH,STATUS_ICON_HEIGHT,temp_host->action_image_alt==NULL?"Perform Extra Host Actions":temp_host->action_image_alt,temp_host->action_image_alt==NULL?"Perform Extra Host Actions":temp_host->action_image_alt);
 			printf("</A>");
 		        }
 
diff -rupN nagios-3.2.3-org/common/objects.c nagios-3.2.3/common/objects.c
--- nagios-3.2.3-org/common/objects.c	Tue Sep 21 17:05:31 2010
+++ nagios-3.2.3/common/objects.c	Fri Jan  7 14:01:22 2011
@@ -621,7 +621,7 @@ timerange *add_timerange_to_daterange(daterange *drang
 
 
 /* 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 *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 *notes_image, char *notes_image_alt, char *action_url, char *action_image, char *action_image_alt, 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
@@ -689,7 +689,11 @@ host *add_host(char *name, char *display_name, char *a
 	new_host->contacts=NULL;
 	new_host->notes=NULL;
 	new_host->notes_url=NULL;
+	new_host->notes_image=NULL;
+	new_host->notes_image_alt=NULL;
 	new_host->action_url=NULL;
+	new_host->action_image=NULL;
+	new_host->action_image_alt=NULL;
 	new_host->icon_image=NULL;
 	new_host->icon_image_alt=NULL;
 	new_host->vrml_image=NULL;
@@ -747,10 +751,26 @@ host *add_host(char *name, char *display_name, char *a
 		if((new_host->notes_url=(char *)strdup(notes_url))==NULL)
 			result=ERROR;
 	        }
+        if(notes_image){
+                if((new_host->notes_image=(char *)strdup(notes_image))==NULL)
+                        result=ERROR;
+                }
+        if(notes_image_alt){
+                if((new_host->notes_image_alt=(char *)strdup(notes_image_alt))==NULL)
+                        result=ERROR;
+                }
 	if(action_url){
 		if((new_host->action_url=(char *)strdup(action_url))==NULL)
 			result=ERROR;
 	        }
+	if(action_image){
+		if((new_host->action_image=(char *)strdup(action_image))==NULL)
+			result=ERROR;
+	        }
+        if(action_image_alt){
+                if((new_host->action_image_alt=(char *)strdup(action_image_alt))==NULL)
+                        result=ERROR;
+                }
 	if(icon_image){
 		if((new_host->icon_image=(char *)strdup(icon_image))==NULL)
 			result=ERROR;
@@ -893,7 +913,11 @@ host *add_host(char *name, char *display_name, char *a
 		my_free(new_host->icon_image_alt);
 		my_free(new_host->icon_image);
 		my_free(new_host->action_url);
+		my_free(new_host->action_image);
+		my_free(new_host->action_image_alt);
 		my_free(new_host->notes_url);
+		my_free(new_host->notes_image);
+		my_free(new_host->notes_image_alt);
 		my_free(new_host->notes);
 		my_free(new_host->failure_prediction_options);
 		my_free(new_host->event_handler);
@@ -1086,7 +1110,7 @@ customvariablesmember *add_custom_variable_to_host(hos
 
 
 /* add a new host group to the list in memory */
-hostgroup *add_hostgroup(char *name, char *alias, char *notes, char *notes_url, char *action_url){
+hostgroup *add_hostgroup(char *name, char *alias, char *notes, char *notes_url, char *notes_image, char *notes_image_alt, char *action_url, char *action_image, char *action_image_alt){
 	hostgroup *new_hostgroup=NULL;
 	int result=OK;
 
@@ -1108,7 +1132,11 @@ hostgroup *add_hostgroup(char *name, char *alias, char
 	new_hostgroup->members=NULL;
 	new_hostgroup->notes=NULL;
 	new_hostgroup->notes_url=NULL;
+	new_hostgroup->notes_image=NULL;
+	new_hostgroup->notes_image_alt=NULL;
 	new_hostgroup->action_url=NULL;
+	new_hostgroup->action_image=NULL;
+	new_hostgroup->action_image_alt=NULL;
 	new_hostgroup->next=NULL;
 	new_hostgroup->nexthash=NULL;
 
@@ -1125,10 +1153,26 @@ hostgroup *add_hostgroup(char *name, char *alias, char
 		if((new_hostgroup->notes_url=(char *)strdup(notes_url))==NULL)
 			result=ERROR;
 		}
+        if(notes_image){
+                if((new_hostgroup->notes_image=(char *)strdup(notes_image))==NULL)
+                        result=ERROR;
+                }
+        if(notes_image_alt){
+                if((new_hostgroup->notes_image_alt=(char *)strdup(notes_image_alt))==NULL)
+                        result=ERROR;
+                }
 	if(action_url){
 		if((new_hostgroup->action_url=(char *)strdup(action_url))==NULL)
 			result=ERROR;
 		}
+	if(action_image){
+		if((new_hostgroup->action_image=(char *)strdup(action_image))==NULL)
+			result=ERROR;
+		}
+        if(action_image_alt){
+                if((new_hostgroup->action_image_alt=(char *)strdup(action_image_alt))==NULL)
+                        result=ERROR;
+                }
 
 	/* add new host group to skiplist */
 	if(result==OK){
@@ -1238,7 +1282,7 @@ hostsmember *add_host_to_hostgroup(hostgroup *temp_hos
 
 
 /* add a new service group to the list in memory */
-servicegroup *add_servicegroup(char *name, char *alias, char *notes, char *notes_url, char *action_url){
+servicegroup *add_servicegroup(char *name, char *alias, char *notes, char *notes_url, char *notes_image, char *notes_image_alt, char *action_url, char *action_image, char *action_image_alt){
 	servicegroup *new_servicegroup=NULL;
 	int result=OK;
 
@@ -1260,7 +1304,11 @@ servicegroup *add_servicegroup(char *name, char *alias
 	new_servicegroup->members=NULL;
 	new_servicegroup->notes=NULL;
 	new_servicegroup->notes_url=NULL;
+	new_servicegroup->notes_image=NULL;
+	new_servicegroup->notes_image_alt=NULL;
 	new_servicegroup->action_url=NULL;
+	new_servicegroup->action_image=NULL;
+	new_servicegroup->action_image_alt=NULL;
 	new_servicegroup->next=NULL;
 	new_servicegroup->nexthash=NULL;
 
@@ -1277,11 +1325,28 @@ servicegroup *add_servicegroup(char *name, char *alias
 		if((new_servicegroup->notes_url=(char *)strdup(notes_url))==NULL)
 			result=ERROR;
 		}
+        if(notes_image){
+                if((new_servicegroup->notes_image=(char *)strdup(notes_image))==NULL)
+                        result=ERROR;
+                }
+        if(notes_image_alt){
+                if((new_servicegroup->notes_image_alt=(char *)strdup(notes_image_alt))==NULL)
+                        result=ERROR;
+                }
 	if(action_url){
 		if((new_servicegroup->action_url=(char *)strdup(action_url))==NULL)
 			result=ERROR;
 		}
+	if(action_image){
+		if((new_servicegroup->action_image=(char *)strdup(action_image))==NULL)
+			result=ERROR;
+		}
+        if(action_image_alt){
+                if((new_servicegroup->action_image_alt=(char *)strdup(action_image_alt))==NULL)
+                        result=ERROR;
+                }
 
+
 	/* add new service group to skiplist */
 	if(result==OK){
 		result=skiplist_insert(object_skiplists[SERVICEGROUP_SKIPLIST],(void *)new_servicegroup);
@@ -1759,7 +1824,7 @@ contactsmember *add_contact_to_contactgroup(contactgro
 
 
 /* add a new service to the list in memory */
-service *add_service(char *host_name, char *description, char *display_name, char *check_period, int initial_state, int max_attempts, int parallelize, int accept_passive_checks, double check_interval, double retry_interval, double notification_interval, double first_notification_delay, char *notification_period, int notify_recovery, int notify_unknown, int notify_warning, int notify_critical, int notify_flapping, int notify_downtime, int notifications_enabled, int is_volatile, char *event_handler, int event_handler_enabled, char *check_command, int checks_enabled, int flap_detection_enabled, double low_flap_threshold, double high_flap_threshold, int flap_detection_on_ok, int flap_detection_on_warning, int flap_detection_on_unknown, int flap_detection_on_critical, int stalk_on_ok, int stalk_on_warning, int stalk_on_unknown, int stalk_on_critical, 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, int retain_status_information, int retain_nonstatus_information, int obsess_over_service){
+service *add_service(char *host_name, char *description, char *display_name, char *check_period, int initial_state, int max_attempts, int parallelize, int accept_passive_checks, double check_interval, double retry_interval, double notification_interval, double first_notification_delay, char *notification_period, int notify_recovery, int notify_unknown, int notify_warning, int notify_critical, int notify_flapping, int notify_downtime, int notifications_enabled, int is_volatile, char *event_handler, int event_handler_enabled, char *check_command, int checks_enabled, int flap_detection_enabled, double low_flap_threshold, double high_flap_threshold, int flap_detection_on_ok, int flap_detection_on_warning, int flap_detection_on_unknown, int flap_detection_on_critical, int stalk_on_ok, int stalk_on_warning, int stalk_on_unknown, int stalk_on_critical, int process_perfdata, int failure_prediction_enabled, char *failure_prediction_options, int check_freshness, int freshness_threshold, char *notes, char *notes_url, char *notes_image, char *notes_image_alt, char *action_url, char *action_image, char *action_image_alt, char *icon_image, char *icon_image_alt, int retain_status_information, int retain_nonstatus_information, int obsess_over_service){
 	service *new_service=NULL;
 	int result=OK;
 #ifdef NSCORE
@@ -1803,7 +1868,11 @@ service *add_service(char *host_name, char *descriptio
 	new_service->failure_prediction_options=NULL;
 	new_service->notes=NULL;
 	new_service->notes_url=NULL;
+	new_service->notes_image=NULL;
+	new_service->notes_image_alt=NULL;
 	new_service->action_url=NULL;
+	new_service->action_image=NULL;
+	new_service->action_image_alt=NULL;
 	new_service->icon_image=NULL;
 	new_service->icon_image_alt=NULL;
 	new_service->contact_groups=NULL;
@@ -1859,10 +1928,26 @@ service *add_service(char *host_name, char *descriptio
 		if((new_service->notes_url=(char *)strdup(notes_url))==NULL)
 			result=ERROR;
 	        }
+        if(notes_image){
+                if((new_service->notes_image=(char *)strdup(notes_image))==NULL)
+                        result=ERROR;
+                }
+        if(notes_image_alt){
+                if((new_service->notes_image_alt=(char *)strdup(notes_image_alt))==NULL)
+                        result=ERROR;
+                }
 	if(action_url){
 		if((new_service->action_url=(char *)strdup(action_url))==NULL)
 			result=ERROR;
 	        }
+	if(action_image){
+		if((new_service->action_image=(char *)strdup(action_image))==NULL)
+			result=ERROR;
+	        }
+        if(action_image_alt){
+                if((new_service->action_image_alt=(char *)strdup(action_image_alt))==NULL)
+                        result=ERROR;
+                }
 	if(icon_image){
 		if((new_service->icon_image=(char *)strdup(icon_image))==NULL)
 			result=ERROR;
@@ -3736,7 +3821,11 @@ int free_object_data(void){
 		my_free(this_host->notification_period);
 		my_free(this_host->notes);
 		my_free(this_host->notes_url);
+		my_free(this_host->notes_image);
+		my_free(this_host->notes_image_alt);
 		my_free(this_host->action_url);
+		my_free(this_host->action_image);
+		my_free(this_host->action_image_alt);
 		my_free(this_host->icon_image);
 		my_free(this_host->icon_image_alt);
 		my_free(this_host->vrml_image);
@@ -3767,7 +3856,11 @@ int free_object_data(void){
 		my_free(this_hostgroup->alias);
 		my_free(this_hostgroup->notes);
 		my_free(this_hostgroup->notes_url);
+		my_free(this_hostgroup->notes_image);
+		my_free(this_hostgroup->notes_image_alt);
 		my_free(this_hostgroup->action_url);
+		my_free(this_hostgroup->action_image);
+		my_free(this_hostgroup->action_image_alt);
 		my_free(this_hostgroup);
 		this_hostgroup=next_hostgroup;
 		}
@@ -3795,7 +3888,11 @@ int free_object_data(void){
 		my_free(this_servicegroup->alias);
 		my_free(this_servicegroup->notes);
 		my_free(this_servicegroup->notes_url);
+		my_free(this_servicegroup->notes_image);
+		my_free(this_servicegroup->notes_image_alt);
 		my_free(this_servicegroup->action_url);
+		my_free(this_servicegroup->action_image);
+		my_free(this_servicegroup->action_image_alt);
 		my_free(this_servicegroup);
 		this_servicegroup=next_servicegroup;
 		}
@@ -3938,7 +4035,11 @@ int free_object_data(void){
 		my_free(this_service->failure_prediction_options);
 		my_free(this_service->notes);
 		my_free(this_service->notes_url);
+		my_free(this_service->notes_image);
+		my_free(this_service->notes_image_alt);
 		my_free(this_service->action_url);
+		my_free(this_service->action_image);
+		my_free(this_service->action_image_alt);
 		my_free(this_service->icon_image);
 		my_free(this_service->icon_image_alt);
 		my_free(this_service);
diff -rupN nagios-3.2.3-org/html/docs/objectdefinitions.html nagios-3.2.3/html/docs/objectdefinitions.html
--- nagios-3.2.3-org/html/docs/objectdefinitions.html	Fri Aug  6 02:18:35 2010
+++ nagios-3.2.3/html/docs/objectdefinitions.html	Fri Jan  7 15:15:41 2011
@@ -304,8 +304,16 @@ Note:  Directives in red are required, while those in 
 
 <tr><td></td><td class="Optional">notes_url</td><td class="Optional"><i>url</i></td></tr>
 
+<tr><td></td><td class="Optional">notes_image</td><td class="Optional"><i>image_file</i></td></tr>
+
+<tr><td></td><td class="Optional">notes_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
+
 <tr><td></td><td class="Optional">action_url</td><td class="Optional"><i>url</i></td></tr>
 
+<tr><td></td><td class="Optional">action_image</td><td class="Optional"><i>image_file</i></td></tr>
+
+<tr><td></td><td class="Optional">action_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
+
 <tr><td></td><td class="Optional">icon_image</td><td class="Optional"><i>image_file</i></td></tr>
 
 <tr><td></td><td class="Optional">icon_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
@@ -826,6 +834,30 @@ This variable is used to define an optional URL that c
 
 <tr>
 
+<td valign="top"><strong>notes_image</strong>:</td>
+
+<td>
+
+This optional directive is used to define the name of a GIF, PNG, or JPG image that can be used instead of the default icon for the <i>&lt;notes_url&gt;</i>. If you plan on using relative paths, the base path will be your HTML images directory (i.e. <i>/usr/local/nagios/share/images</i>)
+
+</td>
+
+</tr>
+
+<tr>
+
+<td valign="top"><strong>notes_image_alt</strong>:</td>
+
+<td>
+
+This variable is used to define an optional string that is used in the ALT tag of the image specified by the <i>&lt;notes_image&gt;</i> argument.
+
+</td>
+
+</tr>
+
+<tr>
+
 <td valign="top"><strong>action_url</strong>:</td>
 
 <td>
@@ -838,6 +870,30 @@ This directive is used to define an optional URL that 
 
 <tr>
 
+<td valign="top"><strong>action_image</strong>:</td>
+
+<td>
+
+This optional directive is used to define the name of a GIF, PNG, or JPG image that can be used instead of the red "splat" icon for the <i>&lt;action_url&gt;</i>. If you plan on using relative paths, the base path will be your HTML images directory (i.e. <i>/usr/local/nagios/share/images</i>)
+
+</td>
+
+</tr>
+
+<tr>
+
+<td valign="top"><strong>action_image_alt</strong>:</td>
+
+<td>
+
+This variable is used to define an optional string that is used in the ALT tag of the image specified by the <i>&lt;action_image&gt;</i> argument.
+
+</td>
+
+</tr>
+
+<tr>
+
 <td valign="top"><strong>icon_image</strong>:</td>
 
 <td>
@@ -968,10 +1024,17 @@ Note:  Directives in red are required, while those in 
 
 <tr><td></td><td class="Optional">notes_url</td><td class="Optional"><i>url</i></td></tr>
 
+<tr><td></td><td class="Optional">notes_image</td><td class="Optional"><i>image_file</i></td></tr>
+
+<tr><td></td><td class="Optional">notes_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
+
 <tr><td></td><td class="Optional">action_url</td><td class="Optional"><i>url</i></td></tr>
 
+<tr><td></td><td class="Optional">action_image</td><td class="Optional"><i>image_file</i></td></tr>
 
+<tr><td></td><td class="Optional">action_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
 
+
 <tr><td>&nbsp;&nbsp;&nbsp;</td><td colspan=2 class="Definition">}</td></tr>
 
 </table>
@@ -1076,6 +1139,30 @@ This variable is used to define an optional URL that c
 
 <tr>
 
+<td valign="top"><strong>notes_image</strong>:</td>
+
+<td>
+
+This optional directive is used to define the name of a GIF, PNG, or JPG image that can be used instead of the default icon for the <i>&lt;notes_url&gt;</i>. If you plan on using relative paths, the base path will be your HTML images directory (i.e. <i>/usr/local/nagios/share/images</i>)
+
+</td>
+
+</tr>
+
+<tr>
+
+<td valign="top"><strong>notes_image_alt</strong>:</td>
+
+<td>
+
+This variable is used to define an optional string that is used in the ALT tag of the image specified by the <i>&lt;notes_image&gt;</i> argument.
+
+</td>
+
+</tr>
+
+<tr>
+
 <td valign="top"><strong>action_url</strong>:</td>
 
 <td>
@@ -1086,6 +1173,32 @@ This directive is used to define an optional URL that 
 
 </tr>
 
+<tr>
+
+<td valign="top"><strong>action_image</strong>:</td>
+
+<td>
+
+This optional directive is used to define the name of a GIF, PNG, or JPG image that can be used instead of the red "splat" icon for the <i>&lt;action_url&gt;</i>.
+ If you plan on using relative paths, the base path will be your HTML images directory (i.e. <i>/usr/local/nagios/share/images</i>)
+
+</td>
+
+</tr>
+
+<tr>
+
+<td valign="top"><strong>action_image_alt</strong>:</td>
+
+<td>
+
+This variable is used to define an optional string that is used in the ALT tag of the image specified by the <i>&lt;action_image&gt;</i> argument.
+
+</td>
+
+</tr>
+
+
 </table>
 
 
@@ -1208,8 +1321,16 @@ Note:  Directives in red are required, while those in 
 
 <tr><td></td><td class="Optional">notes_url</td><td class="Optional"><i>url</i></td></tr>
 
+<tr><td></td><td class="Optional">notes_image</td><td class="Optional"><i>image_file</i></td></tr>
+
+<tr><td></td><td class="Optional">notes_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
+
 <tr><td></td><td class="Optional">action_url</td><td class="Optional"><i>url</i></td></tr>
 
+<tr><td></td><td class="Optional">action_image</td><td class="Optional"><i>image_file</i></td></tr>
+
+<tr><td></td><td class="Optional">action_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
+
 <tr><td></td><td class="Optional">icon_image</td><td class="Optional"><i>image_file</i></td></tr>
 
 <tr><td></td><td class="Optional">icon_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
@@ -1712,6 +1833,30 @@ This directive is used to define an optional URL that 
 
 <tr>
 
+<td valign="top"><strong>notes_image</strong>:</td>
+
+<td>
+
+This optional directive is used to define the name of a GIF, PNG, or JPG image that can be used instead of the default icon for the <i>&lt;notes_url&gt;</i>. If you plan on using relative paths, the base path will be your HTML images directory (i.e. <i>/usr/local/nagios/share/images</i>)
+
+</td>
+
+</tr>
+
+<tr>
+
+<td valign="top"><strong>notes_image_alt</strong>:</td>
+
+<td>
+
+This variable is used to define an optional string that is used in the ALT tag of the image specified by the <i>&lt;notes_image&gt;</i> argument.
+
+</td>
+
+</tr>
+
+<tr>
+
 <td valign="top"><strong>action_url</strong>:</td>
 
 <td>
@@ -1724,6 +1869,31 @@ This directive is used to define an optional URL that 
 
 <tr>
 
+<td valign="top"><strong>action_image</strong>:</td>
+
+<td>
+
+This optional directive is used to define the name of a GIF, PNG, or JPG image that can be used instead of the red "splat" icon for the <i>&lt;action_url&gt;</i>.
+ If you plan on using relative paths, the base path will be your HTML images directory (i.e. <i>/usr/local/nagios/share/images</i>)
+
+</td>
+
+</tr>
+
+<tr>
+
+<td valign="top"><strong>action_image_alt</strong>:</td>
+
+<td>
+
+This variable is used to define an optional string that is used in the ALT tag of the image specified by the <i>&lt;action_image&gt;</i> argument.
+
+</td>
+
+</tr>
+
+<tr>
+
 <td valign="top"><strong>icon_image</strong>:</td>
 
 <td>
@@ -1810,10 +1980,18 @@ Note:  Directives in red are required, while those in 
 
 <tr><td></td><td class="Optional">notes_url</td><td class="Optional"><i>url</i></td></tr>
 
+<tr><td></td><td class="Optional">notes_image</td><td class="Optional"><i>image_file</i></td></tr>
+
+<tr><td></td><td class="Optional">notes_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
+
 <tr><td></td><td class="Optional">action_url</td><td class="Optional"><i>url</i></td></tr>
 
+<tr><td></td><td class="Optional">action_image</td><td class="Optional"><i>image_file</i></td></tr>
 
+<tr><td></td><td class="Optional">action_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
 
+
+
 <tr><td>&nbsp;&nbsp;&nbsp;</td><td colspan=2 class="Definition">}</td></tr>
 
 </table>
@@ -1928,6 +2106,30 @@ This directive is used to define an optional URL that 
 
 <tr>
 
+<td valign="top"><strong>notes_image</strong>:</td>
+
+<td>
+
+This optional directive is used to define the name of a GIF, PNG, or JPG image that can be used instead of the default icon for the <i>&lt;notes_url&gt;</i>. If you plan on using relative paths, the base path will be your HTML images directory (i.e. <i>/usr/local/nagios/share/images</i>)
+
+</td>
+
+</tr>
+
+<tr>
+
+<td valign="top"><strong>notes_image_alt</strong>:</td>
+
+<td>
+
+This variable is used to define an optional string that is used in the ALT tag of the image specified by the <i>&lt;notes_image&gt;</i> argument.
+
+</td>
+
+</tr>
+
+<tr>
+
 <td valign="top"><strong>action_url</strong>:</td>
 
 <td>
@@ -1938,6 +2140,31 @@ This directive is used to define an optional URL that 
 
 </tr>
 
+<tr>
+
+<td valign="top"><strong>action_image</strong>:</td>
+
+<td>
+
+This optional directive is used to define the name of a GIF, PNG, or JPG image that can be used instead of the red "splat" icon for the <i>&lt;action_url&gt;</i>.
+ If you plan on using relative paths, the base path will be your HTML images directory (i.e. <i>/usr/local/nagios/share/images</i>)
+
+</td>
+
+<tr>
+
+<td valign="top"><strong>action_image_alt</strong>:</td>
+
+<td>
+
+This variable is used to define an optional string that is used in the ALT tag of the image specified by the <i>&lt;action_image&gt;</i> argument.
+
+</td>
+
+</tr>
+
+</tr>
+
 </table>
 
 
@@ -3720,8 +3947,16 @@ Note:  Variables in red are required, while those in b
 
 <tr><td></td><td class="Optional">notes_url</td><td class="Optional"><i>url</i></td></tr>
 
+<tr><td></td><td class="Optional">notes_image</td><td class="Optional"><i>image_file</i></td></tr>
+
+<tr><td></td><td class="Optional">notes_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
+
 <tr><td></td><td class="Optional">action_url</td><td class="Optional"><i>url</i></td></tr>
 
+<tr><td></td><td class="Optional">action_image</td><td class="Optional"><i>image_file</i></td></tr>
+
+<tr><td></td><td class="Optional">action_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
+
 <tr><td></td><td class="Optional">icon_image</td><td class="Optional"><i>image_file</i></td></tr>
 
 <tr><td></td><td class="Optional">icon_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
@@ -3816,6 +4051,30 @@ This variable is used to define an optional URL that c
 
 <tr>
 
+<td valign="top"><strong>notes_image</strong>:</td>
+
+<td>
+
+This optional directive is used to define the name of a GIF, PNG, or JPG image that can be used instead of the default icon for the <i>&lt;notes_url&gt;</i>. If you plan on using relative paths, the base path will be your HTML images directory (i.e. <i>/usr/local/nagios/share/images</i>)
+
+</td>
+
+</tr>
+
+<tr>
+
+<td valign="top"><strong>notes_image_alt</strong>:</td>
+
+<td>
+
+This variable is used to define an optional string that is used in the ALT tag of the image specified by the <i>&lt;notes_image&gt;</i> argument.
+
+</td>
+
+</tr>
+
+<tr>
+
 <td valign="top"><strong>action_url</strong>:</td>
 
 <td>
@@ -3828,6 +4087,31 @@ This directive is used to define an optional URL that 
 
 <tr>
 
+<td valign="top"><strong>action_image</strong>:</td>
+
+<td>
+
+This optional directive is used to define the name of a GIF, PNG, or JPG image that can be used instead of the red "splat" icon for the <i>&lt;action_url&gt;</i>.
+ If you plan on using relative paths, the base path will be your HTML images directory (i.e. <i>/usr/local/nagios/share/images</i>)
+
+</td>
+
+</tr>
+
+<tr>
+
+<td valign="top"><strong>action_image_alt</strong>:</td>
+
+<td>
+
+This variable is used to define an optional string that is used in the ALT tag of the image specified by the <i>&lt;action_image&gt;</i> argument.
+
+</td>
+
+</tr>
+
+<tr>
+
 <td valign="top"><strong>icon_image</strong>:</td>
 
 <td>
@@ -3964,8 +4248,16 @@ Note:  Variables in red are required, while those in b
 
 <tr><td></td><td class="Optional">notes_url</td><td class="Optional"><i>url</i></td></tr>
 
+<tr><td></td><td class="Optional">notes_image</td><td class="Optional"><i>image_file</i></td></tr>
+
+<tr><td></td><td class="Optional">notes_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
+
 <tr><td></td><td class="Optional">action_url</td><td class="Optional"><i>url</i></td></tr>
 
+<tr><td></td><td class="Optional">action_image</td><td class="Optional"><i>image_file</i></td></tr>
+
+<tr><td></td><td class="Optional">action_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
+
 <tr><td></td><td class="Optional">icon_image</td><td class="Optional"><i>image_file</i></td></tr>
 
 <tr><td></td><td class="Optional">icon_image_alt</td><td class="Optional"><i>alt_string</i></td></tr>
@@ -4058,11 +4350,60 @@ This directive is used to define an optional URL that 
 
 <tr>
 
+<td valign="top"><strong>notes_image</strong>:</td>
+
+<td>
+
+This optional directive is used to define the name of a GIF, PNG, or JPG image that can be used instead of the default icon for the <i>&lt;notes_url&gt;</i>. If you plan on using relative paths, the base path will be your HTML images directory (i.e. <i>/usr/local/nagios/share/images</i>)
+
+</td>
+
+</tr>
+
+<tr>
+
+<td valign="top"><strong>notes_image_alt</strong>:</td>
+
+<td>
+
+This variable is used to define an optional string that is used in the ALT tag of the image specified by the <i>&lt;notes_image&gt;</i> argument.
+
+</td>
+
+</tr>
+
+<tr>
+
 <td valign="top"><strong>action_url</strong>:</td>
 
 <td>
 
 This directive is used to define an optional URL that can be used to provide more actions to be performed on the service.  If you specify an URL, you will see a link that says "Extra Service Actions" in the <a href="cgis.html#extinfo_cgi">extended information</a> CGI (when you are viewing information about the specified service).  Any valid URL can be used.  If you plan on using relative paths, the base path will the the same as what is used to access the CGIs (i.e. <i>/cgi-bin/nagios/</i>).
+
+</td>
+
+</tr>
+
+<tr>
+
+<td valign="top"><strong>action_image</strong>:</td>
+
+<td>
+
+This optional directive is used to define the name of a GIF, PNG, or JPG image that can be used instead of the red "splat" icon for the <i>&lt;action_url&gt;</i>.
+ If you plan on using relative paths, the base path will be your HTML images directory (i.e. <i>/usr/local/nagios/share/images</i>)
+
+</td>
+
+</tr>
+
+<tr>
+
+<td valign="top"><strong>action_image_alt</strong>:</td>
+
+<td>
+
+This variable is used to define an optional string that is used in the ALT tag of the image specified by the <i>&lt;action_image&gt;</i> argument.
 
 </td>
 
diff -rupN nagios-3.2.3-org/include/objects.h nagios-3.2.3/include/objects.h
--- nagios-3.2.3-org/include/objects.h	Sun May 17 14:54:28 2009
+++ nagios-3.2.3/include/objects.h	Fri Jan  7 14:41:18 2011
@@ -257,7 +257,11 @@ typedef struct hostgroup_struct{
 	hostsmember *members;
 	char    *notes;
 	char    *notes_url;
+	char    *notes_image;
+	char    *notes_image_alt;
 	char    *action_url;
+	char    *action_image;
+	char    *action_image_alt;
 	struct	hostgroup_struct *next;
 	struct	hostgroup_struct *nexthash;
 	}hostgroup;
@@ -311,7 +315,11 @@ struct host_struct{
 	int     obsess_over_host;
 	char    *notes;
 	char    *notes_url;
+	char    *notes_image;
+	char    *notes_image_alt;
 	char    *action_url;
+	char    *action_image;
+	char    *action_image_alt;
 	char    *icon_image;
 	char    *icon_image_alt;
 	char    *vrml_image;
@@ -396,7 +404,11 @@ typedef struct servicegroup_struct{
 	servicesmember *members;
 	char    *notes;
 	char    *notes_url;
+	char    *notes_image;
+	char    *notes_image_alt;
 	char    *action_url;
+	char    *action_image;
+	char    *action_image_alt;
 	struct	servicegroup_struct *next;
 	struct	servicegroup_struct *nexthash;
 	}servicegroup;
@@ -452,7 +464,11 @@ struct service_struct{
 	char    *failure_prediction_options;
 	char    *notes;
 	char    *notes_url;
+	char    *notes_image;
+	char    *notes_image_alt;
 	char    *action_url;
+	char    *action_image;
+	char    *action_image_alt;
 	char    *icon_image;
 	char    *icon_image_alt;
 	customvariablesmember *custom_variables;
@@ -639,7 +655,7 @@ contact *add_contact(char *,char *,char *,char *,char 
 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 *,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 *,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 */
@@ -650,14 +666,14 @@ timeperiodexclusion *add_exclusion_to_timeperiod(timep
 timerange *add_timerange_to_timeperiod(timeperiod *,int,unsigned long,unsigned long);			/* adds a timerange to a timeperiod definition */
 daterange *add_exception_to_timeperiod(timeperiod *,int,int,int,int,int,int,int,int,int,int,int,int);
 timerange *add_timerange_to_daterange(daterange *,unsigned long,unsigned long);
-hostgroup *add_hostgroup(char *,char *,char *,char *,char *);						/* adds a hostgroup definition */
+hostgroup *add_hostgroup(char *,char *,char *,char *,char *,char *,char *,char *,char *);		/* adds a hostgroup definition */
 hostsmember *add_host_to_hostgroup(hostgroup *, char *);						/* adds a host to a hostgroup definition */
-servicegroup *add_servicegroup(char *,char *,char *,char *,char *);                                     /* adds a servicegroup definition */
+servicegroup *add_servicegroup(char *,char *,char *,char *,char *,char *,char *,char *,char *);		/* adds a servicegroup definition */
 servicesmember *add_service_to_servicegroup(servicegroup *,char *,char *);                              /* adds a service to a servicegroup definition */
 contactgroup *add_contactgroup(char *,char *);								/* adds a contactgroup definition */
 contactsmember *add_contact_to_contactgroup(contactgroup *,char *);					/* adds a contact to a contact group definition */
 command *add_command(char *,char *);									/* adds a command definition */
-service *add_service(char *,char *,char *,char *,int,int,int,int,double,double,double,double,char *,int,int,int,int,int,int,int,int,char *,int,char *,int,int,double,double,int,int,int,int,int,int,int,int,int,int,char *,int,int,char *,char *,char *,char *,char *,int,int,int);	/* adds a service definition */
+service *add_service(char *,char *,char *,char *,int,int,int,int,double,double,double,double,char *,int,int,int,int,int,int,int,int,char *,int,char *,int,int,double,double,int,int,int,int,int,int,int,int,int,int,char *,int,int,char *,char *,char *,char *,char *,char *,char *,char *,char *,int,int,int);		/* adds a service definition */
 contactgroupsmember *add_contactgroup_to_service(service *,char *);					/* adds a contact group to a service definition */
 contactsmember *add_contact_to_service(service *,char *);                                               /* adds a contact to a host definition */
 serviceescalation *add_serviceescalation(char *,char *,int,int,double,char *,int,int,int,int);          /* adds a service escalation definition */
diff -rupN nagios-3.2.3-org/xdata/xodtemplate.c nagios-3.2.3/xdata/xodtemplate.c
--- nagios-3.2.3-org/xdata/xodtemplate.c	Mon Mar 29 16:51:38 2010
+++ nagios-3.2.3/xdata/xodtemplate.c	Fri Jan  7 14:14:11 2011
@@ -1146,13 +1146,21 @@ int xodtemplate_begin_object_definition(char *input, i
 		new_hostgroup->members=NULL;
 		new_hostgroup->notes=NULL;
 		new_hostgroup->notes_url=NULL;
+		new_hostgroup->notes_image=NULL;
+		new_hostgroup->notes_image_alt=NULL;
 		new_hostgroup->action_url=NULL;
+		new_hostgroup->action_image=NULL;
+		new_hostgroup->action_image_alt=NULL;
 		new_hostgroup->have_members=FALSE;
 		new_hostgroup->hostgroup_members=NULL;
 		new_hostgroup->have_hostgroup_members=FALSE;
 		new_hostgroup->have_notes=FALSE;
 		new_hostgroup->have_notes_url=FALSE;
+		new_hostgroup->have_notes_image=FALSE;
+		new_hostgroup->have_notes_image_alt=FALSE;
 		new_hostgroup->have_action_url=FALSE;
+		new_hostgroup->have_action_image=FALSE;
+		new_hostgroup->have_action_image_alt=FALSE;
 		new_hostgroup->has_been_resolved=FALSE;
 		new_hostgroup->register_object=TRUE;
 
@@ -1202,13 +1210,21 @@ int xodtemplate_begin_object_definition(char *input, i
 		new_servicegroup->members=NULL;
 		new_servicegroup->notes=NULL;
 		new_servicegroup->notes_url=NULL;
+		new_servicegroup->notes_image=NULL;
+		new_servicegroup->notes_image_alt=NULL;
 		new_servicegroup->action_url=NULL;
+		new_servicegroup->action_image=NULL;
+		new_servicegroup->action_image_alt=NULL;
 		new_servicegroup->have_members=FALSE;
 		new_servicegroup->servicegroup_members=NULL;
 		new_servicegroup->have_servicegroup_members=FALSE;
 		new_servicegroup->have_notes=FALSE;
 		new_servicegroup->have_notes_url=FALSE;
+		new_servicegroup->have_notes_image=FALSE;
+		new_servicegroup->have_notes_image_alt=FALSE;
 		new_servicegroup->have_action_url=FALSE;
+		new_servicegroup->have_action_image=FALSE;
+		new_servicegroup->have_action_image_alt=FALSE;
 		new_servicegroup->has_been_resolved=FALSE;
 		new_servicegroup->register_object=TRUE;
 
@@ -1513,9 +1529,17 @@ int xodtemplate_begin_object_definition(char *input, i
 		new_host->notes=NULL;
 		new_host->have_notes=FALSE;
 		new_host->notes_url=NULL;
+		new_host->notes_image=NULL;
+		new_host->notes_image_alt=NULL;
 		new_host->have_notes_url=FALSE;
+		new_host->have_notes_image=FALSE;
+		new_host->have_notes_image_alt=FALSE;
 		new_host->action_url=NULL;
+		new_host->action_image=NULL;
+		new_host->action_image_alt=NULL;
 		new_host->have_action_url=FALSE;
+		new_host->have_action_image=FALSE;
+		new_host->have_action_image_alt=FALSE;
 		new_host->icon_image=NULL;
 		new_host->have_icon_image=FALSE;
 		new_host->icon_image_alt=NULL;
@@ -1715,9 +1739,17 @@ int xodtemplate_begin_object_definition(char *input, i
 		new_service->notes=NULL;
 		new_service->have_notes=FALSE;
 		new_service->notes_url=NULL;
+		new_service->notes_image=NULL;
+		new_service->notes_image_alt=NULL;
 		new_service->have_notes_url=FALSE;
+		new_service->have_notes_image=FALSE;
+		new_service->have_notes_image_alt=FALSE;
 		new_service->action_url=NULL;
+		new_service->action_image=NULL;
+		new_service->action_image_alt=NULL;
 		new_service->have_action_url=FALSE;
+		new_service->have_action_image=FALSE;
+		new_service->have_action_image_alt=FALSE;
 		new_service->icon_image=NULL;
 		new_service->have_icon_image=FALSE;
 		new_service->icon_image_alt=NULL;
@@ -1910,9 +1942,17 @@ int xodtemplate_begin_object_definition(char *input, i
 		new_hostextinfo->notes=NULL;
 		new_hostextinfo->have_notes=FALSE;
 		new_hostextinfo->notes_url=NULL;
+		new_hostextinfo->notes_image=NULL;
+		new_hostextinfo->notes_image_alt=NULL;
 		new_hostextinfo->have_notes_url=FALSE;
+		new_hostextinfo->have_notes_image=FALSE;
+		new_hostextinfo->have_notes_image_alt=FALSE;
 		new_hostextinfo->action_url=NULL;
+		new_hostextinfo->action_image=NULL;
+		new_hostextinfo->action_image_alt=NULL;
 		new_hostextinfo->have_action_url=FALSE;
+		new_hostextinfo->have_action_image=FALSE;
+		new_hostextinfo->have_action_image_alt=FALSE;
 		new_hostextinfo->icon_image=NULL;
 		new_hostextinfo->have_icon_image=FALSE;
 		new_hostextinfo->icon_image_alt=NULL;
@@ -1981,9 +2021,17 @@ int xodtemplate_begin_object_definition(char *input, i
 		new_serviceextinfo->notes=NULL;
 		new_serviceextinfo->have_notes=FALSE;
 		new_serviceextinfo->notes_url=NULL;
+		new_serviceextinfo->notes_image=NULL;
+		new_serviceextinfo->notes_image_alt=NULL;
 		new_serviceextinfo->have_notes_url=FALSE;
+		new_serviceextinfo->have_notes_image=FALSE;
+		new_serviceextinfo->have_notes_image_alt=FALSE;
 		new_serviceextinfo->action_url=NULL;
+		new_serviceextinfo->action_image=NULL;
+		new_serviceextinfo->action_image_alt=NULL;
 		new_serviceextinfo->have_action_url=FALSE;
+		new_serviceextinfo->have_action_image=FALSE;
+		new_serviceextinfo->have_action_image_alt=FALSE;
 		new_serviceextinfo->icon_image=NULL;
 		new_serviceextinfo->have_icon_image=FALSE;
 		new_serviceextinfo->icon_image_alt=NULL;
@@ -2525,6 +2573,20 @@ int xodtemplate_add_object_property(char *input, int o
 			        }
 			temp_hostgroup->have_notes_url=TRUE;
 		        }
+                else if(!strcmp(variable,"notes_image")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_hostgroup->notes_image=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_hostgroup->have_notes_image=TRUE;
+                        }
+                else if(!strcmp(variable,"notes_image_alt")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_hostgroup->notes_image_alt=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_hostgroup->have_notes_image_alt=TRUE;
+                        }
 		else if(!strcmp(variable,"action_url")){
 			if(strcmp(value,XODTEMPLATE_NULL)){
 				if((temp_hostgroup->action_url=(char *)strdup(value))==NULL)
@@ -2532,6 +2594,20 @@ int xodtemplate_add_object_property(char *input, int o
 			        }
 			temp_hostgroup->have_action_url=TRUE;
 		        }
+                else if(!strcmp(variable,"action_image")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_hostgroup->action_image=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_hostgroup->have_action_image=TRUE;
+                        }
+                else if(!strcmp(variable,"action_image_alt")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_hostgroup->action_image_alt=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_hostgroup->have_action_image_alt=TRUE;
+                        }
 		else if(!strcmp(variable,"register"))
 			temp_hostgroup->register_object=(atoi(value)>0)?TRUE:FALSE;
 		else{
@@ -2649,6 +2725,20 @@ int xodtemplate_add_object_property(char *input, int o
 			        }
 			temp_servicegroup->have_notes_url=TRUE;
 		        }
+                else if(!strcmp(variable,"notes_image")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_servicegroup->notes_image=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_servicegroup->have_notes_image=TRUE;
+                        }
+                else if(!strcmp(variable,"notes_image_alt")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_servicegroup->notes_image_alt=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_servicegroup->have_notes_image_alt=TRUE;
+                        }
 		else if(!strcmp(variable,"action_url")){
 			if(strcmp(value,XODTEMPLATE_NULL)){
 				if((temp_servicegroup->action_url=(char *)strdup(value))==NULL)
@@ -2656,6 +2746,20 @@ int xodtemplate_add_object_property(char *input, int o
 			        }
 			temp_servicegroup->have_action_url=TRUE;
 		        }
+                else if(!strcmp(variable,"action_image")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_servicegroup->action_image=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_servicegroup->have_action_image=TRUE;
+		        }
+                else if(!strcmp(variable,"action_image_alt")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_servicegroup->action_image_alt=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_servicegroup->have_action_image_alt=TRUE;
+                        }
 		else if(!strcmp(variable,"register"))
 			temp_servicegroup->register_object=(atoi(value)>0)?TRUE:FALSE;
 		else{
@@ -3443,6 +3547,20 @@ int xodtemplate_add_object_property(char *input, int o
 			        }
 			temp_host->have_notes_url=TRUE;
 		        }
+                else if(!strcmp(variable,"notes_image")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_host->notes_image=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_host->have_notes_image=TRUE;
+                        }
+                else if(!strcmp(variable,"notes_image_alt")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_host->notes_image_alt=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_host->have_notes_image_alt=TRUE;
+                        }
 		else if(!strcmp(variable,"action_url")){
 			if(strcmp(value,XODTEMPLATE_NULL)){
 				if((temp_host->action_url=(char *)strdup(value))==NULL)
@@ -3450,6 +3568,20 @@ int xodtemplate_add_object_property(char *input, int o
 			        }
 			temp_host->have_action_url=TRUE;
 		        }
+                else if(!strcmp(variable,"action_image")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_host->action_image=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_host->have_action_image=TRUE;
+                        }
+                else if(!strcmp(variable,"action_image_alt")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_host->action_image_alt=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_host->have_action_image_alt=TRUE;
+                        }
 		else if(!strcmp(variable,"icon_image")){
 			if(strcmp(value,XODTEMPLATE_NULL)){
 				if((temp_host->icon_image=(char *)strdup(value))==NULL)
@@ -3922,6 +4054,20 @@ int xodtemplate_add_object_property(char *input, int o
 			        }
 			temp_service->have_notes_url=TRUE;
 		        }
+                else if(!strcmp(variable,"notes_image")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_service->notes_image=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_service->have_notes_image=TRUE;
+                        }
+                else if(!strcmp(variable,"notes_image_alt")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_service->notes_image_alt=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_service->have_notes_image_alt=TRUE;
+                        }
 		else if(!strcmp(variable,"action_url")){
 			if(strcmp(value,XODTEMPLATE_NULL)){
 				if((temp_service->action_url=(char *)strdup(value))==NULL)
@@ -3929,6 +4075,20 @@ int xodtemplate_add_object_property(char *input, int o
 			        }
 			temp_service->have_action_url=TRUE;
 		        }
+                else if(!strcmp(variable,"action_image")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_service->action_image=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_service->have_action_image=TRUE;
+                        }
+                else if(!strcmp(variable,"action_image_alt")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_service->action_image_alt=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_service->have_action_image_alt=TRUE;
+                        }
 		else if(!strcmp(variable,"icon_image")){
 			if(strcmp(value,XODTEMPLATE_NULL)){
 				if((temp_service->icon_image=(char *)strdup(value))==NULL)
@@ -4544,6 +4704,20 @@ int xodtemplate_add_object_property(char *input, int o
 			        }
 			temp_hostextinfo->have_notes_url=TRUE;
 		        }
+                else if(!strcmp(variable,"notes_image")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_hostextinfo->notes_image=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_hostextinfo->have_notes_image=TRUE;
+                        }
+                else if(!strcmp(variable,"notes_image_alt")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_hostextinfo->notes_image_alt=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_hostextinfo->have_notes_image_alt=TRUE;
+                        }
 		else if(!strcmp(variable,"action_url")){
 			if(strcmp(value,XODTEMPLATE_NULL)){
 				if((temp_hostextinfo->action_url=(char *)strdup(value))==NULL)
@@ -4551,6 +4725,20 @@ int xodtemplate_add_object_property(char *input, int o
 			        }
 			temp_hostextinfo->have_action_url=TRUE;
 		        }
+                else if(!strcmp(variable,"action_image")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_hostextinfo->action_image=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_hostextinfo->have_action_image=TRUE;
+                        }
+                else if(!strcmp(variable,"action_image_alt")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_hostextinfo->action_image_alt=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_hostextinfo->have_action_image_alt=TRUE;
+                        }
 		else if(!strcmp(variable,"icon_image")){
 			if(strcmp(value,XODTEMPLATE_NULL)){
 				if((temp_hostextinfo->icon_image=(char *)strdup(value))==NULL)
@@ -4703,6 +4891,20 @@ int xodtemplate_add_object_property(char *input, int o
 			        }
 			temp_serviceextinfo->have_notes_url=TRUE;
 		        }
+                else if(!strcmp(variable,"notes_image")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_serviceextinfo->notes_image=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_serviceextinfo->have_notes_image=TRUE;
+                        }
+                else if(!strcmp(variable,"notes_image_alt")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_serviceextinfo->notes_image_alt=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_serviceextinfo->have_notes_image_alt=TRUE;
+                        }
 		else if(!strcmp(variable,"action_url")){
 			if(strcmp(value,XODTEMPLATE_NULL)){
 				if((temp_serviceextinfo->action_url=(char *)strdup(value))==NULL)
@@ -4710,6 +4912,20 @@ int xodtemplate_add_object_property(char *input, int o
 			        }
 			temp_serviceextinfo->have_action_url=TRUE;
 		        }
+                else if(!strcmp(variable,"action_image")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_serviceextinfo->action_image=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_serviceextinfo->have_action_image=TRUE;
+                        }
+                else if(!strcmp(variable,"action_image_alt")){
+                        if(strcmp(value,XODTEMPLATE_NULL)){
+                                if((temp_serviceextinfo->action_image_alt=(char *)strdup(value))==NULL)
+                                        result=ERROR;
+                                }
+                        temp_serviceextinfo->have_action_image_alt=TRUE;
+                        }
 		else if(!strcmp(variable,"icon_image")){
 			if(strcmp(value,XODTEMPLATE_NULL)){
 				if((temp_serviceextinfo->icon_image=(char *)strdup(value))==NULL)
@@ -6212,9 +6428,17 @@ int xodtemplate_duplicate_service(xodtemplate_service 
 	new_service->notes=NULL;
 	new_service->have_notes=temp_service->have_notes;
 	new_service->notes_url=NULL;
+	new_service->notes_image=NULL;
+	new_service->notes_image_alt=NULL;
 	new_service->have_notes_url=temp_service->have_notes_url;
+	new_service->have_notes_image=temp_service->have_notes_image;
+	new_service->have_notes_image_alt=temp_service->have_notes_image_alt;
 	new_service->action_url=NULL;
+	new_service->action_image=NULL;
+	new_service->action_image_alt=NULL;
 	new_service->have_action_url=temp_service->have_action_url;
+	new_service->have_action_image=temp_service->have_action_image;
+	new_service->have_action_image_alt=temp_service->have_action_image_alt;
 	new_service->icon_image=NULL;
 	new_service->have_icon_image=temp_service->have_icon_image;
 	new_service->icon_image_alt=NULL;
@@ -6255,8 +6479,16 @@ int xodtemplate_duplicate_service(xodtemplate_service 
 		error=TRUE;
 	if(temp_service->notes_url!=NULL && (new_service->notes_url=(char *)strdup(temp_service->notes_url))==NULL)
 		error=TRUE;
+	if(temp_service->notes_image!=NULL && (new_service->notes_image=(char *)strdup(temp_service->notes_image))==NULL)
+		error=TRUE;
+	if(temp_service->notes_image_alt!=NULL && (new_service->notes_image_alt=(char *)strdup(temp_service->notes_image_alt))==NULL)
+		error=TRUE;
 	if(temp_service->action_url!=NULL && (new_service->action_url=(char *)strdup(temp_service->action_url))==NULL)
 		error=TRUE;
+	if(temp_service->action_image!=NULL && (new_service->action_image=(char *)strdup(temp_service->action_image))==NULL)
+		error=TRUE;
+	if(temp_service->action_image_alt!=NULL && (new_service->action_image_alt=(char *)strdup(temp_service->action_image_alt))==NULL)
+		error=TRUE;
 	if(temp_service->icon_image!=NULL && (new_service->icon_image=(char *)strdup(temp_service->icon_image))==NULL)
 		error=TRUE;
 	if(temp_service->icon_image_alt!=NULL && (new_service->icon_image_alt=(char *)strdup(temp_service->icon_image_alt))==NULL)
@@ -6278,7 +6510,11 @@ int xodtemplate_duplicate_service(xodtemplate_service 
 		my_free(new_service->failure_prediction_options);
 		my_free(new_service->notes);
 		my_free(new_service->notes_url);
+		my_free(new_service->notes_image);
+		my_free(new_service->notes_image_alt);
 		my_free(new_service->action_url);
+		my_free(new_service->action_image);
+		my_free(new_service->action_image_alt);
 		my_free(new_service->icon_image);
 		my_free(new_service->icon_image_alt);
 		my_free(new_service);
@@ -6732,9 +6968,17 @@ int xodtemplate_duplicate_hostextinfo(xodtemplate_host
 	new_hostextinfo->notes=NULL;
 	new_hostextinfo->have_notes=this_hostextinfo->have_notes;
 	new_hostextinfo->notes_url=NULL;
+	new_hostextinfo->notes_image=NULL;
+	new_hostextinfo->notes_image_alt=NULL;
 	new_hostextinfo->have_notes_url=this_hostextinfo->have_notes_url;
+	new_hostextinfo->have_notes_image=this_hostextinfo->have_notes_image;
+	new_hostextinfo->have_notes_image_alt=this_hostextinfo->have_notes_image_alt;
 	new_hostextinfo->action_url=NULL;
+	new_hostextinfo->action_image=NULL;
+	new_hostextinfo->action_image_alt=NULL;
 	new_hostextinfo->have_action_url=this_hostextinfo->have_action_url;
+	new_hostextinfo->have_action_image=this_hostextinfo->have_action_image;
+	new_hostextinfo->have_action_image_alt=this_hostextinfo->have_action_image_alt;
 	new_hostextinfo->icon_image=NULL;
 	new_hostextinfo->have_icon_image=this_hostextinfo->have_icon_image;
 	new_hostextinfo->icon_image_alt=NULL;
@@ -6755,8 +6999,16 @@ int xodtemplate_duplicate_hostextinfo(xodtemplate_host
 		error=TRUE;
 	if(this_hostextinfo->notes_url!=NULL && (new_hostextinfo->notes_url=(char *)strdup(this_hostextinfo->notes_url))==NULL)
 		error=TRUE;
+	if(this_hostextinfo->notes_image!=NULL && (new_hostextinfo->notes_image=(char *)strdup(this_hostextinfo->notes_image))==NULL)
+		error=TRUE;
+	if(this_hostextinfo->notes_image_alt!=NULL && (new_hostextinfo->notes_image_alt=(char *)strdup(this_hostextinfo->notes_image_alt))==NULL)
+		error=TRUE;
 	if(this_hostextinfo->action_url!=NULL && (new_hostextinfo->action_url=(char *)strdup(this_hostextinfo->action_url))==NULL)
 		error=TRUE;
+	if(this_hostextinfo->action_image!=NULL && (new_hostextinfo->action_image=(char *)strdup(this_hostextinfo->action_image))==NULL)
+		error=TRUE;
+	if(this_hostextinfo->action_image_alt!=NULL && (new_hostextinfo->action_image_alt=(char *)strdup(this_hostextinfo->action_image_alt))==NULL)
+		error=TRUE;
 	if(this_hostextinfo->icon_image!=NULL && (new_hostextinfo->icon_image=(char *)strdup(this_hostextinfo->icon_image))==NULL)
 		error=TRUE;
 	if(this_hostextinfo->icon_image_alt!=NULL && (new_hostextinfo->icon_image_alt=(char *)strdup(this_hostextinfo->icon_image_alt))==NULL)
@@ -6772,7 +7024,11 @@ int xodtemplate_duplicate_hostextinfo(xodtemplate_host
 		my_free(new_hostextinfo->name);
 		my_free(new_hostextinfo->notes);
 		my_free(new_hostextinfo->notes_url);
+		my_free(new_hostextinfo->notes_image);
+		my_free(new_hostextinfo->notes_image_alt);
 		my_free(new_hostextinfo->action_url);
+		my_free(new_hostextinfo->action_image);
+		my_free(new_hostextinfo->action_image_alt);
 		my_free(new_hostextinfo->icon_image);
 		my_free(new_hostextinfo->icon_image_alt);
 		my_free(new_hostextinfo->vrml_image);
@@ -6826,9 +7082,17 @@ int xodtemplate_duplicate_serviceextinfo(xodtemplate_s
 	new_serviceextinfo->notes=NULL;
 	new_serviceextinfo->have_notes=this_serviceextinfo->have_notes;
 	new_serviceextinfo->notes_url=NULL;
+	new_serviceextinfo->notes_image=NULL;
+	new_serviceextinfo->notes_image_alt=NULL;
 	new_serviceextinfo->have_notes_url=this_serviceextinfo->have_notes_url;
+	new_serviceextinfo->have_notes_image=this_serviceextinfo->have_notes_image;
+	new_serviceextinfo->have_notes_image_alt=this_serviceextinfo->have_notes_image_alt;
 	new_serviceextinfo->action_url=NULL;
+	new_serviceextinfo->action_image=NULL;
+	new_serviceextinfo->action_image_alt=NULL;
 	new_serviceextinfo->have_action_url=this_serviceextinfo->have_action_url;
+	new_serviceextinfo->have_action_image=this_serviceextinfo->have_action_image;
+	new_serviceextinfo->have_action_image_alt=this_serviceextinfo->have_action_image_alt;
 	new_serviceextinfo->icon_image=NULL;
 	new_serviceextinfo->have_icon_image=this_serviceextinfo->have_icon_image;
 	new_serviceextinfo->icon_image_alt=NULL;
@@ -6847,8 +7111,16 @@ int xodtemplate_duplicate_serviceextinfo(xodtemplate_s
 		error=TRUE;
 	if(this_serviceextinfo->notes_url!=NULL && (new_serviceextinfo->notes_url=(char *)strdup(this_serviceextinfo->notes_url))==NULL)
 		error=TRUE;
+	if(this_serviceextinfo->notes_image!=NULL && (new_serviceextinfo->notes_image=(char *)strdup(this_serviceextinfo->notes_image))==NULL)
+		error=TRUE;
+	if(this_serviceextinfo->notes_image_alt!=NULL && (new_serviceextinfo->notes_image_alt=(char *)strdup(this_serviceextinfo->notes_image_alt))==NULL)
+		error=TRUE;
 	if(this_serviceextinfo->action_url!=NULL && (new_serviceextinfo->action_url=(char *)strdup(this_serviceextinfo->action_url))==NULL)
 		error=TRUE;
+	if(this_serviceextinfo->action_image!=NULL && (new_serviceextinfo->action_image=(char *)strdup(this_serviceextinfo->action_image))==NULL)
+		error=TRUE;
+	if(this_serviceextinfo->action_image_alt!=NULL && (new_serviceextinfo->action_image_alt=(char *)strdup(this_serviceextinfo->action_image_alt))==NULL)
+		error=TRUE;
 	if(this_serviceextinfo->icon_image!=NULL && (new_serviceextinfo->icon_image=(char *)strdup(this_serviceextinfo->icon_image))==NULL)
 		error=TRUE;
 	if(this_serviceextinfo->icon_image_alt!=NULL && (new_serviceextinfo->icon_image_alt=(char *)strdup(this_serviceextinfo->icon_image_alt))==NULL)
@@ -6861,7 +7133,11 @@ int xodtemplate_duplicate_serviceextinfo(xodtemplate_s
 		my_free(new_serviceextinfo->service_description);
 		my_free(new_serviceextinfo->notes);
 		my_free(new_serviceextinfo->notes_url);
+		my_free(new_serviceextinfo->notes_image);
+		my_free(new_serviceextinfo->notes_image_alt);
 		my_free(new_serviceextinfo->action_url);
+		my_free(new_serviceextinfo->action_image);
+		my_free(new_serviceextinfo->action_image_alt);
 		my_free(new_serviceextinfo->icon_image);
 		my_free(new_serviceextinfo->icon_image_alt);
 		my_free(new_serviceextinfo);
@@ -7438,11 +7714,31 @@ int xodtemplate_resolve_hostgroup(xodtemplate_hostgrou
 				this_hostgroup->notes_url=(char *)strdup(template_hostgroup->notes_url);
 			this_hostgroup->have_notes_url=TRUE;
 		        }
+                if(this_hostgroup->have_notes_image==FALSE && template_hostgroup->have_notes_image==TRUE){
+                        if(this_hostgroup->notes_image==NULL && template_hostgroup->notes_image!=NULL)
+                                this_hostgroup->notes_image=(char *)strdup(template_hostgroup->notes_image);
+                        this_hostgroup->have_notes_image=TRUE;
+                        }
+                if(this_hostgroup->have_notes_image_alt==FALSE && template_hostgroup->have_notes_image_alt==TRUE){
+                        if(this_hostgroup->notes_image_alt==NULL && template_hostgroup->notes_image_alt!=NULL)
+                                this_hostgroup->notes_image_alt=(char *)strdup(template_hostgroup->notes_image_alt);
+                        this_hostgroup->have_notes_image_alt=TRUE;
+                        }
 		if(this_hostgroup->have_action_url==FALSE && template_hostgroup->have_action_url==TRUE){
 			if(this_hostgroup->action_url==NULL && template_hostgroup->action_url!=NULL)
 				this_hostgroup->action_url=(char *)strdup(template_hostgroup->action_url);
 			this_hostgroup->have_action_url=TRUE;
 		        }
+                if(this_hostgroup->have_action_image==FALSE && template_hostgroup->have_action_image==TRUE){
+                        if(this_hostgroup->action_image==NULL && template_hostgroup->action_image!=NULL)
+                                this_hostgroup->action_image=(char *)strdup(template_hostgroup->action_image);
+                        this_hostgroup->have_action_image=TRUE;
+                        }
+                if(this_hostgroup->have_action_image_alt==FALSE && template_hostgroup->have_action_image_alt==TRUE){
+                        if(this_hostgroup->action_image_alt==NULL && template_hostgroup->action_image_alt!=NULL)
+                                this_hostgroup->action_image_alt=(char *)strdup(template_hostgroup->action_image_alt);
+                        this_hostgroup->have_action_image_alt=TRUE;
+                        }
 	        }
 
 	my_free(template_names);
@@ -7509,11 +7805,31 @@ int xodtemplate_resolve_servicegroup(xodtemplate_servi
 				this_servicegroup->notes_url=(char *)strdup(template_servicegroup->notes_url);
 			this_servicegroup->have_notes_url=TRUE;
 		        }
+                if(this_servicegroup->have_notes_image==FALSE && template_servicegroup->have_notes_image==TRUE){
+                        if(this_servicegroup->notes_image==NULL && template_servicegroup->notes_image!=NULL)
+                                this_servicegroup->notes_image=(char *)strdup(template_servicegroup->notes_image);
+                        this_servicegroup->have_notes_image=TRUE;
+                        }
+                if(this_servicegroup->have_notes_image_alt==FALSE && template_servicegroup->have_notes_image_alt==TRUE){
+                        if(this_servicegroup->notes_image_alt==NULL && template_servicegroup->notes_image_alt!=NULL)
+                                this_servicegroup->notes_image_alt=(char *)strdup(template_servicegroup->notes_image_alt);
+                        this_servicegroup->have_notes_image_alt=TRUE;
+                        }
 		if(this_servicegroup->have_action_url==FALSE && template_servicegroup->have_action_url==TRUE){
 			if(this_servicegroup->action_url==NULL && template_servicegroup->action_url!=NULL)
 				this_servicegroup->action_url=(char *)strdup(template_servicegroup->action_url);
 			this_servicegroup->have_action_url=TRUE;
 		        }
+                if(this_servicegroup->have_action_image==FALSE && template_servicegroup->have_action_image==TRUE){
+                        if(this_servicegroup->action_image==NULL && template_servicegroup->action_image!=NULL)
+                                this_servicegroup->action_image=(char *)strdup(template_servicegroup->action_image);
+                        this_servicegroup->have_action_image=TRUE;
+                        }
+                if(this_servicegroup->have_action_image_alt==FALSE && template_servicegroup->have_action_image_alt==TRUE){
+                        if(this_servicegroup->action_image_alt==NULL && template_servicegroup->action_image_alt!=NULL)
+                                this_servicegroup->action_image_alt=(char *)strdup(template_servicegroup->action_image_alt);
+                        this_servicegroup->have_action_image_alt=TRUE;
+                        }
 	        }
 
 	my_free(template_names);
@@ -7910,11 +8226,31 @@ int xodtemplate_resolve_host(xodtemplate_host *this_ho
 				this_host->notes_url=(char *)strdup(template_host->notes_url);
 			this_host->have_notes_url=TRUE;
 		        }
+                if(this_host->have_notes_image==FALSE && template_host->have_notes_image==TRUE){
+                        if(this_host->notes_image==NULL && template_host->notes_image!=NULL)
+                                this_host->notes_image=(char *)strdup(template_host->notes_image);
+                        this_host->have_notes_image=TRUE;
+                        }
+                if(this_host->have_notes_image_alt==FALSE && template_host->have_notes_image_alt==TRUE){
+                        if(this_host->notes_image_alt==NULL && template_host->notes_image_alt!=NULL)
+                                this_host->notes_image_alt=(char *)strdup(template_host->notes_image_alt);
+                        this_host->have_notes_image_alt=TRUE;
+                        }
 		if(this_host->have_action_url==FALSE && template_host->have_action_url==TRUE){
 			if(this_host->action_url==NULL && template_host->action_url!=NULL)
 				this_host->action_url=(char *)strdup(template_host->action_url);
 			this_host->have_action_url=TRUE;
 		        }
+                if(this_host->have_action_image==FALSE && template_host->have_action_image==TRUE){
+                        if(this_host->action_image==NULL && template_host->action_image!=NULL)
+                                this_host->action_image=(char *)strdup(template_host->action_image);
+                        this_host->have_action_image=TRUE;
+                        }
+                if(this_host->have_action_image_alt==FALSE && template_host->have_action_image_alt==TRUE){
+                        if(this_host->action_image_alt==NULL && template_host->action_image_alt!=NULL)
+                                this_host->action_image_alt=(char *)strdup(template_host->action_image_alt);
+                        this_host->have_action_image_alt=TRUE;
+                        }
 		if(this_host->have_icon_image==FALSE && template_host->have_icon_image==TRUE){
 			if(this_host->icon_image==NULL && template_host->icon_image!=NULL)
 				this_host->icon_image=(char *)strdup(template_host->icon_image);
@@ -8167,11 +8503,31 @@ int xodtemplate_resolve_service(xodtemplate_service *t
 				this_service->notes_url=(char *)strdup(template_service->notes_url);
 			this_service->have_notes_url=TRUE;
 		        }
+                if(this_service->have_notes_image==FALSE && template_service->have_notes_image==TRUE){
+                        if(this_service->notes_image==NULL && template_service->notes_image!=NULL)
+                                this_service->notes_image=(char *)strdup(template_service->notes_image);
+                        this_service->have_notes_image=TRUE;
+                        }
+                if(this_service->have_notes_image_alt==FALSE && template_service->have_notes_image_alt==TRUE){
+                        if(this_service->notes_image_alt==NULL && template_service->notes_image_alt!=NULL)
+                                this_service->notes_image_alt=(char *)strdup(template_service->notes_image_alt);
+                        this_service->have_notes_image_alt=TRUE;
+                        }
 		if(this_service->have_action_url==FALSE && template_service->have_action_url==TRUE){
 			if(this_service->action_url==NULL && template_service->action_url!=NULL)
 				this_service->action_url=(char *)strdup(template_service->action_url);
 			this_service->have_action_url=TRUE;
 		        }
+                if(this_service->have_action_image==FALSE && template_service->have_action_image==TRUE){
+                        if(this_service->action_image==NULL && template_service->action_image!=NULL)
+                                this_service->action_image=(char *)strdup(template_service->action_image);
+                        this_service->have_action_image=TRUE;
+                        }
+                if(this_service->have_action_image_alt==FALSE && template_service->have_action_image_alt==TRUE){
+                        if(this_service->action_image_alt==NULL && template_service->action_image_alt!=NULL)
+                                this_service->action_image_alt=(char *)strdup(template_service->action_image_alt);
+                        this_service->have_action_image_alt=TRUE;
+                        }
 		if(this_service->have_icon_image==FALSE && template_service->have_icon_image==TRUE){
 			if(this_service->icon_image==NULL && template_service->icon_image!=NULL)
 				this_service->icon_image=(char *)strdup(template_service->icon_image);
@@ -8523,11 +8879,31 @@ int xodtemplate_resolve_hostextinfo(xodtemplate_hostex
 				this_hostextinfo->notes_url=(char *)strdup(template_hostextinfo->notes_url);
 			this_hostextinfo->have_notes_url=TRUE;
 		        }
+                if(this_hostextinfo->have_notes_image==FALSE && template_hostextinfo->have_notes_image==TRUE){
+                        if(this_hostextinfo->notes_image==NULL && template_hostextinfo->notes_image!=NULL)
+                                this_hostextinfo->notes_image=(char *)strdup(template_hostextinfo->notes_image);
+                        this_hostextinfo->have_notes_image=TRUE;
+                        }
+                if(this_hostextinfo->have_notes_image_alt==FALSE && template_hostextinfo->have_notes_image_alt==TRUE){
+                        if(this_hostextinfo->notes_image_alt==NULL && template_hostextinfo->notes_image_alt!=NULL)
+                                this_hostextinfo->notes_image_alt=(char *)strdup(template_hostextinfo->notes_image_alt);
+                        this_hostextinfo->have_notes_image_alt=TRUE;
+                        }
 		if(this_hostextinfo->have_action_url==FALSE && template_hostextinfo->have_action_url==TRUE){
 			if(this_hostextinfo->action_url==NULL && template_hostextinfo->action_url!=NULL)
 				this_hostextinfo->action_url=(char *)strdup(template_hostextinfo->action_url);
 			this_hostextinfo->have_action_url=TRUE;
 		        }
+                if(this_hostextinfo->have_action_image==FALSE && template_hostextinfo->have_action_image==TRUE){
+                        if(this_hostextinfo->action_image==NULL && template_hostextinfo->action_image!=NULL)
+                                this_hostextinfo->action_image=(char *)strdup(template_hostextinfo->action_image);
+                        this_hostextinfo->have_action_image=TRUE;
+                        }
+                if(this_hostextinfo->have_action_image_alt==FALSE && template_hostextinfo->have_action_image_alt==TRUE){
+                        if(this_hostextinfo->action_image_alt==NULL && template_hostextinfo->action_image_alt!=NULL)
+                                this_hostextinfo->action_image_alt=(char *)strdup(template_hostextinfo->action_image_alt);
+                        this_hostextinfo->have_action_image_alt=TRUE;
+                        }
 		if(this_hostextinfo->have_icon_image==FALSE && template_hostextinfo->have_icon_image==TRUE){
 			if(this_hostextinfo->icon_image==NULL && template_hostextinfo->icon_image!=NULL)
 				this_hostextinfo->icon_image=(char *)strdup(template_hostextinfo->icon_image);
@@ -8631,11 +9007,31 @@ int xodtemplate_resolve_serviceextinfo(xodtemplate_ser
 			this_serviceextinfo->notes_url=(char *)strdup(template_serviceextinfo->notes_url);
 			this_serviceextinfo->have_notes_url=TRUE;
 		        }
+                if(this_serviceextinfo->have_notes_image==FALSE && template_serviceextinfo->have_notes_image==TRUE){
+                if(this_serviceextinfo->notes_image==NULL && template_serviceextinfo->notes_image!=NULL)
+                        this_serviceextinfo->notes_image=(char *)strdup(template_serviceextinfo->notes_image);
+                        this_serviceextinfo->have_notes_image=TRUE;
+                        }
+                if(this_serviceextinfo->have_notes_image_alt==FALSE && template_serviceextinfo->have_notes_image_alt==TRUE){
+                if(this_serviceextinfo->notes_image_alt==NULL && template_serviceextinfo->notes_image_alt!=NULL)
+                        this_serviceextinfo->notes_image_alt=(char *)strdup(template_serviceextinfo->notes_image_alt);
+                        this_serviceextinfo->have_notes_image_alt=TRUE;
+                        }
 		if(this_serviceextinfo->have_action_url==FALSE && template_serviceextinfo->have_action_url==TRUE){
 		if(this_serviceextinfo->action_url==NULL && template_serviceextinfo->action_url!=NULL)
 			this_serviceextinfo->action_url=(char *)strdup(template_serviceextinfo->action_url);
 			this_serviceextinfo->have_action_url=TRUE;
 		        }
+                if(this_serviceextinfo->have_action_image==FALSE && template_serviceextinfo->have_action_image==TRUE){
+                if(this_serviceextinfo->action_image==NULL && template_serviceextinfo->action_image!=NULL)
+                        this_serviceextinfo->action_image=(char *)strdup(template_serviceextinfo->action_image);
+                        this_serviceextinfo->have_action_image=TRUE;
+                        }
+                if(this_serviceextinfo->have_action_image_alt==FALSE && template_serviceextinfo->have_action_image_alt==TRUE){
+                if(this_serviceextinfo->action_image_alt==NULL && template_serviceextinfo->action_image_alt!=NULL)
+                        this_serviceextinfo->action_image_alt=(char *)strdup(template_serviceextinfo->action_image_alt);
+                        this_serviceextinfo->have_action_image_alt=TRUE;
+                        }
 		if(this_serviceextinfo->have_icon_image==FALSE && template_serviceextinfo->have_icon_image==TRUE){
 		if(this_serviceextinfo->icon_image==NULL && template_serviceextinfo->icon_image!=NULL)
 			this_serviceextinfo->icon_image=(char *)strdup(template_serviceextinfo->icon_image);
@@ -10173,7 +10569,7 @@ int xodtemplate_register_hostgroup(xodtemplate_hostgro
 		return OK;
 
 	/* add the  host group */
-	new_hostgroup=add_hostgroup(this_hostgroup->hostgroup_name,this_hostgroup->alias,this_hostgroup->notes,this_hostgroup->notes_url,this_hostgroup->action_url);
+	new_hostgroup=add_hostgroup(this_hostgroup->hostgroup_name,this_hostgroup->alias,this_hostgroup->notes,this_hostgroup->notes_url,this_hostgroup->notes_image,this_hostgroup->notes_image_alt,this_hostgroup->action_url,this_hostgroup->action_image,this_hostgroup->action_image_alt);
 
 	/* return with an error if we couldn't add the hostgroup */
 	if(new_hostgroup==NULL){
@@ -10220,7 +10616,7 @@ int xodtemplate_register_servicegroup(xodtemplate_serv
 		return OK;
 
 	/* add the  service group */
-	new_servicegroup=add_servicegroup(this_servicegroup->servicegroup_name,this_servicegroup->alias,this_servicegroup->notes,this_servicegroup->notes_url,this_servicegroup->action_url);
+	new_servicegroup=add_servicegroup(this_servicegroup->servicegroup_name,this_servicegroup->alias,this_servicegroup->notes,this_servicegroup->notes_url,this_servicegroup->notes_image,this_servicegroup->notes_image_alt,this_servicegroup->action_url,this_servicegroup->action_image,this_servicegroup->action_image_alt);
 
 	/* return with an error if we couldn't add the servicegroup */
 	if(new_servicegroup==NULL){
@@ -10466,7 +10862,7 @@ int xodtemplate_register_host(xodtemplate_host *this_h
 		this_host->address=(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->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->notes_image,this_host->notes_image_alt,this_host->action_url,this_host->action_image,this_host->action_image_alt,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 */
@@ -10553,7 +10949,7 @@ int xodtemplate_register_service(xodtemplate_service *
 		return OK;
 
 	/* add the service */
-	new_service=add_service(this_service->host_name,this_service->service_description,this_service->display_name,this_service->check_period,this_service->initial_state,this_service->max_check_attempts,this_service->parallelize_check,this_service->passive_checks_enabled,this_service->check_interval,this_service->retry_interval,this_service->notification_interval,this_service->first_notification_delay,this_service->notification_period,this_service->notify_on_recovery,this_service->notify_on_unknown,this_service->notify_on_warning,this_service->notify_on_critical,this_service->notify_on_flapping,this_service->notify_on_downtime,this_service->notifications_enabled,this_service->is_volatile,this_service->event_handler,this_service->event_handler_enabled,this_service->check_command,this_service->active_checks_enabled,this_service->flap_detection_enabled,this_service->low_flap_threshold,this_service->high_flap_threshold,this_service->flap_detection_on_ok,this_service->flap_detection_on_warning,this_service->flap_detection_on_unknown,this_service->flap_detection_on_critical,this_service->stalk_on_ok,this_service->stalk_on_warning,this_service->stalk_on_unknown,this_service->stalk_on_critical,this_service->process_perf_data,this_service->failure_prediction_enabled,this_service->failure_prediction_options,this_service->check_freshness,this_service->freshness_threshold,this_service->notes,this_service->notes_url,this_service->action_url,this_service->icon_image,this_service->icon_image_alt,this_service->retain_status_information,this_service->retain_nonstatus_information,this_service->obsess_over_service);
+	new_service=add_service(this_service->host_name,this_service->service_description,this_service->display_name,this_service->check_period,this_service->initial_state,this_service->max_check_attempts,this_service->parallelize_check,this_service->passive_checks_enabled,this_service->check_interval,this_service->retry_interval,this_service->notification_interval,this_service->first_notification_delay,this_service->notification_period,this_service->notify_on_recovery,this_service->notify_on_unknown,this_service->notify_on_warning,this_service->notify_on_critical,this_service->notify_on_flapping,this_service->notify_on_downtime,this_service->notifications_enabled,this_service->is_volatile,this_service->event_handler,this_service->event_handler_enabled,this_service->check_command,this_service->active_checks_enabled,this_service->flap_detection_enabled,this_service->low_flap_threshold,this_service->high_flap_threshold,this_service->flap_detection_on_ok,this_service->flap_detection_on_warning,this_service->flap_detection_on_unknown,this_service->flap_detection_on_critical,this_service->stalk_on_ok,this_service->stalk_on_warning,this_service->stalk_on_unknown,this_service->stalk_on_critical,this_service->process_perf_data,this_service->failure_prediction_enabled,this_service->failure_prediction_options,this_service->check_freshness,this_service->freshness_threshold,this_service->notes,this_service->notes_url,this_service->notes_image,this_service->notes_image_alt,this_service->action_url,this_service->action_image,this_service->action_image_alt,this_service->icon_image,this_service->icon_image_alt,this_service->retain_status_information,this_service->retain_nonstatus_information,this_service->obsess_over_service);
 
 	/* return with an error if we couldn't add the service */
 	if(new_service==NULL){
@@ -11565,8 +11961,16 @@ int xodtemplate_merge_service_extinfo_object(xodtempla
 		this_service->notes=strdup(this_serviceextinfo->notes);
 	if(this_service->notes_url==NULL && this_serviceextinfo->notes_url!=NULL)
 		this_service->notes_url=strdup(this_serviceextinfo->notes_url);
+	if(this_service->notes_image==NULL && this_serviceextinfo->notes_image!=NULL)
+		this_service->notes_image=strdup(this_serviceextinfo->notes_image);
+	if(this_service->notes_image_alt==NULL && this_serviceextinfo->notes_image_alt!=NULL)
+		this_service->notes_image_alt=strdup(this_serviceextinfo->notes_image_alt);
 	if(this_service->action_url==NULL && this_serviceextinfo->action_url!=NULL)
 		this_service->action_url=strdup(this_serviceextinfo->action_url);
+	if(this_service->action_image==NULL && this_serviceextinfo->action_image!=NULL)
+		this_service->action_image=strdup(this_serviceextinfo->action_image);
+	if(this_service->action_image_alt==NULL && this_serviceextinfo->action_image_alt!=NULL)
+		this_service->action_image_alt=strdup(this_serviceextinfo->action_image_alt);
 	if(this_service->icon_image==NULL && this_serviceextinfo->icon_image!=NULL)
 		this_service->icon_image=strdup(this_serviceextinfo->icon_image);
 	if(this_service->icon_image_alt==NULL && this_serviceextinfo->icon_image_alt!=NULL)
@@ -11586,8 +11990,16 @@ int xodtemplate_merge_host_extinfo_object(xodtemplate_
 		this_host->notes=strdup(this_hostextinfo->notes);
 	if(this_host->notes_url==NULL && this_hostextinfo->notes_url!=NULL)
 		this_host->notes_url=strdup(this_hostextinfo->notes_url);
+	if(this_host->notes_image==NULL && this_hostextinfo->notes_image!=NULL)
+		this_host->notes_image=strdup(this_hostextinfo->notes_image);
+	if(this_host->notes_image_alt==NULL && this_hostextinfo->notes_image_alt!=NULL)
+		this_host->notes_image_alt=strdup(this_hostextinfo->notes_image_alt);
 	if(this_host->action_url==NULL && this_hostextinfo->action_url!=NULL)
 		this_host->action_url=strdup(this_hostextinfo->action_url);
+	if(this_host->action_image==NULL && this_hostextinfo->action_image!=NULL)
+		this_host->action_image=strdup(this_hostextinfo->action_image);
+	if(this_host->action_image_alt==NULL && this_hostextinfo->action_image_alt!=NULL)
+		this_host->action_image_alt=strdup(this_hostextinfo->action_image_alt);
 	if(this_host->icon_image==NULL && this_hostextinfo->icon_image!=NULL)
 		this_host->icon_image=strdup(this_hostextinfo->icon_image);
 	if(this_host->icon_image_alt==NULL && this_hostextinfo->icon_image_alt!=NULL)
@@ -11793,8 +12205,16 @@ int xodtemplate_cache_objects(char *cache_file){
 			fprintf(fp,"\tnotes\t%s\n",temp_hostgroup->notes);
 		if(temp_hostgroup->notes_url)
 			fprintf(fp,"\tnotes_url\t%s\n",temp_hostgroup->notes_url);
+		if(temp_hostgroup->notes_image)
+			fprintf(fp,"\tnotes_image\t%s\n",temp_hostgroup->notes_image);
+		if(temp_hostgroup->notes_image_alt)
+			fprintf(fp,"\tnotes_image_alt\t%s\n",temp_hostgroup->notes_image_alt);
 		if(temp_hostgroup->action_url)
 			fprintf(fp,"\taction_url\t%s\n",temp_hostgroup->action_url);
+		if(temp_hostgroup->action_image)
+			fprintf(fp,"\taction_image\t%s\n",temp_hostgroup->action_image);
+		if(temp_hostgroup->action_image_alt)
+			fprintf(fp,"\taction_image_alt\t%s\n",temp_hostgroup->action_image_alt);
 		fprintf(fp,"\t}\n\n");
 	        }
 
@@ -11815,8 +12235,16 @@ int xodtemplate_cache_objects(char *cache_file){
 			fprintf(fp,"\tnotes\t%s\n",temp_servicegroup->notes);
 		if(temp_servicegroup->notes_url)
 			fprintf(fp,"\tnotes_url\t%s\n",temp_servicegroup->notes_url);
+		if(temp_servicegroup->notes_image)
+			fprintf(fp,"\tnotes_image\t%s\n",temp_servicegroup->notes_image);
+		if(temp_servicegroup->notes_image_alt)
+			fprintf(fp,"\tnotes_image_alt\t%s\n",temp_servicegroup->notes_image_alt);
 		if(temp_servicegroup->action_url)
 			fprintf(fp,"\taction_url\t%s\n",temp_servicegroup->action_url);
+		if(temp_servicegroup->action_image)
+			fprintf(fp,"\taction_image\t%s\n",temp_servicegroup->action_image);
+		if(temp_servicegroup->action_image_alt)
+			fprintf(fp,"\taction_image_alt\t%s\n",temp_servicegroup->action_image_alt);
 		fprintf(fp,"\t}\n\n");
 	        }
 
@@ -12003,8 +12431,16 @@ int xodtemplate_cache_objects(char *cache_file){
 			fprintf(fp,"\tnotes\t%s\n",temp_host->notes);
 		if(temp_host->notes_url)
 			fprintf(fp,"\tnotes_url\t%s\n",temp_host->notes_url);
+		if(temp_host->notes_image)
+			fprintf(fp,"\tnotes_image\t%s\n",temp_host->notes_image);
+		if(temp_host->notes_image_alt)
+			fprintf(fp,"\tnotes_image_alt\t%s\n",temp_host->notes_image_alt);
 		if(temp_host->action_url)
 			fprintf(fp,"\taction_url\t%s\n",temp_host->action_url);
+		if(temp_host->action_image)
+			fprintf(fp,"\taction_image\t%s\n",temp_host->action_image);
+		if(temp_host->action_image_alt)
+			fprintf(fp,"\taction_image_alt\t%s\n",temp_host->action_image_alt);
 		fprintf(fp,"\tretain_status_information\t%d\n",temp_host->retain_status_information);
 		fprintf(fp,"\tretain_nonstatus_information\t%d\n",temp_host->retain_nonstatus_information);
 
@@ -12124,8 +12560,16 @@ int xodtemplate_cache_objects(char *cache_file){
 			fprintf(fp,"\tnotes\t%s\n",temp_service->notes);
 		if(temp_service->notes_url)
 			fprintf(fp,"\tnotes_url\t%s\n",temp_service->notes_url);
+		if(temp_service->notes_image)
+			fprintf(fp,"\tnotes_image\t%s\n",temp_service->notes_image);
+		if(temp_service->notes_image_alt)
+			fprintf(fp,"\tnotes_image_alt\t%s\n",temp_service->notes_image_alt);
 		if(temp_service->action_url)
 			fprintf(fp,"\taction_url\t%s\n",temp_service->action_url);
+		if(temp_service->action_image)
+			fprintf(fp,"\taction_image\t%s\n",temp_service->action_image);
+		if(temp_service->action_image_alt)
+			fprintf(fp,"\taction_image_alt\t%s\n",temp_service->action_image_alt);
 		fprintf(fp,"\tretain_status_information\t%d\n",temp_service->retain_status_information);
 		fprintf(fp,"\tretain_nonstatus_information\t%d\n",temp_service->retain_nonstatus_information);
 
@@ -13003,7 +13447,11 @@ int xodtemplate_free_memory(void){
 		my_free(this_hostgroup->hostgroup_members);
 		my_free(this_hostgroup->notes);
 		my_free(this_hostgroup->notes_url);
+		my_free(this_hostgroup->notes_image);
+		my_free(this_hostgroup->notes_image_alt);
 		my_free(this_hostgroup->action_url);
+		my_free(this_hostgroup->action_image);
+		my_free(this_hostgroup->action_image_alt);
 		my_free(this_hostgroup);
 	        }
 	xodtemplate_hostgroup_list=NULL;
@@ -13020,7 +13468,11 @@ int xodtemplate_free_memory(void){
 		my_free(this_servicegroup->servicegroup_members);
 		my_free(this_servicegroup->notes);
 		my_free(this_servicegroup->notes_url);
+		my_free(this_servicegroup->notes_image);
+		my_free(this_servicegroup->notes_image_alt);
 		my_free(this_servicegroup->action_url);
+		my_free(this_servicegroup->action_image);
+		my_free(this_servicegroup->action_image_alt);
 		my_free(this_servicegroup);
 	        }
 	xodtemplate_servicegroup_list=NULL;
@@ -13124,7 +13576,11 @@ int xodtemplate_free_memory(void){
 		my_free(this_host->failure_prediction_options);
 		my_free(this_host->notes);
 		my_free(this_host->notes_url);
+		my_free(this_host->notes_image);
+		my_free(this_host->notes_image_alt);
 		my_free(this_host->action_url);
+		my_free(this_host->action_image);
+		my_free(this_host->action_image_alt);
 		my_free(this_host->icon_image);
 		my_free(this_host->icon_image_alt);
 		my_free(this_host->vrml_image);
@@ -13163,7 +13619,11 @@ int xodtemplate_free_memory(void){
 		my_free(this_service->failure_prediction_options);
 		my_free(this_service->notes);
 		my_free(this_service->notes_url);
+		my_free(this_service->notes_image);
+		my_free(this_service->notes_image_alt);
 		my_free(this_service->action_url);
+		my_free(this_service->action_image);
+		my_free(this_service->action_image_alt);
 		my_free(this_service->icon_image);
 		my_free(this_service->icon_image_alt);
 		my_free(this_service);
@@ -13210,7 +13670,11 @@ int xodtemplate_free_memory(void){
 		my_free(this_hostextinfo->hostgroup_name);
 		my_free(this_hostextinfo->notes);
 		my_free(this_hostextinfo->notes_url);
+		my_free(this_hostextinfo->notes_image);
+		my_free(this_hostextinfo->notes_image_alt);
 		my_free(this_hostextinfo->action_url);
+		my_free(this_hostextinfo->action_image);
+		my_free(this_hostextinfo->action_image_alt);
 		my_free(this_hostextinfo->icon_image);
 		my_free(this_hostextinfo->icon_image_alt);
 		my_free(this_hostextinfo->vrml_image);
@@ -13230,7 +13694,11 @@ int xodtemplate_free_memory(void){
 		my_free(this_serviceextinfo->service_description);
 		my_free(this_serviceextinfo->notes);
 		my_free(this_serviceextinfo->notes_url);
+		my_free(this_serviceextinfo->notes_image);
+		my_free(this_serviceextinfo->notes_image_alt);
 		my_free(this_serviceextinfo->action_url);
+		my_free(this_serviceextinfo->action_image);
+		my_free(this_serviceextinfo->action_image_alt);
 		my_free(this_serviceextinfo->icon_image);
 		my_free(this_serviceextinfo->icon_image_alt);
 		my_free(this_serviceextinfo);
diff -rupN nagios-3.2.3-org/xdata/xodtemplate.h nagios-3.2.3/xdata/xodtemplate.h
--- nagios-3.2.3-org/xdata/xodtemplate.h	Wed May 20 01:41:48 2009
+++ nagios-3.2.3/xdata/xodtemplate.h	Fri Jan  7 14:03:33 2011
@@ -269,7 +269,11 @@ typedef struct xodtemplate_host_struct{
 	char      *failure_prediction_options;
 	char      *notes;
 	char      *notes_url;
+	char      *notes_image;
+	char      *notes_image_alt;
 	char      *action_url;
+	char      *action_image;
+	char      *action_image_alt;
 	char      *icon_image;
 	char      *icon_image_alt;
 	char      *vrml_image;
@@ -295,7 +299,11 @@ typedef struct xodtemplate_host_struct{
 	int       have_failure_prediction_options;
 	int       have_notes;
 	int       have_notes_url;
+	int       have_notes_image;
+	int       have_notes_image_alt;
 	int       have_action_url;
+	int       have_action_image;
+	int       have_action_image_alt;
 	int       have_icon_image;
 	int       have_icon_image_alt;
 	int       have_vrml_image;
@@ -346,13 +354,21 @@ typedef struct xodtemplate_hostgroup_struct{
 	char      *hostgroup_members;
 	char      *notes;
 	char      *notes_url;
+	char      *notes_image;
+	char      *notes_image_alt;
 	char      *action_url;
+	char      *action_image;
+	char      *action_image_alt;
 
 	int       have_members;
 	int       have_hostgroup_members;
 	int       have_notes;
 	int       have_notes_url;
+	int       have_notes_image;
+	int       have_notes_image_alt;
 	int       have_action_url;
+	int       have_action_image;
+	int       have_action_image_alt;
 
 	int       has_been_resolved;
 	int       register_object;
@@ -415,7 +431,11 @@ typedef struct xodtemplate_service_struct{
 	char       *failure_prediction_options;
 	char       *notes;
 	char       *notes_url;
+	char       *notes_image;
+	char       *notes_image_alt;
 	char       *action_url;
+	char       *action_image;
+	char       *action_image_alt;
 	char       *icon_image;
 	char       *icon_image_alt;
 	int        retain_status_information;
@@ -437,7 +457,11 @@ typedef struct xodtemplate_service_struct{
 	int        have_failure_prediction_options;
 	int        have_notes;
 	int        have_notes_url;
+	int        have_notes_image;
+	int        have_notes_image_alt;
 	int        have_action_url;
+	int        have_action_image;
+	int        have_action_image_alt;
 	int        have_icon_image;
 	int        have_icon_image_alt;
 
@@ -487,13 +511,21 @@ typedef struct xodtemplate_servicegroup_struct{
 	char      *servicegroup_members;
 	char      *notes;
 	char      *notes_url;
+	char      *notes_image;
+	char      *notes_image_alt;
 	char      *action_url;
+	char      *action_image;
+	char      *action_image_alt;
 
 	int       have_members;
 	int       have_servicegroup_members;
 	int       have_notes;
 	int       have_notes_url;
+	int       have_notes_image;
+	int       have_notes_image_alt;
 	int       have_action_url;
+	int       have_action_image;
+	int       have_action_image_alt;
 
 	int       has_been_resolved;
 	int       register_object;
@@ -675,7 +707,11 @@ typedef struct xodtemplate_hostextinfo_struct{
 	char       *hostgroup_name;
 	char       *notes;
 	char       *notes_url;
+	char       *notes_image;
+	char       *notes_image_alt;
 	char       *action_url;
+	char       *action_image;
+	char       *action_image_alt;
 	char       *icon_image;
 	char       *icon_image_alt;
 	char       *vrml_image;
@@ -690,7 +726,11 @@ typedef struct xodtemplate_hostextinfo_struct{
 	int        have_hostgroup_name;
 	int        have_notes;
 	int        have_notes_url;
+	int        have_notes_image;
+	int        have_notes_image_alt;
 	int        have_action_url;
+	int        have_action_image;
+	int        have_action_image_alt;
 	int        have_icon_image;
 	int        have_icon_image_alt;
 	int        have_vrml_image;
@@ -717,7 +757,11 @@ typedef struct xodtemplate_serviceextinfo_struct{
 	char       *service_description;
 	char       *notes;
 	char       *notes_url;
+	char       *notes_image;
+	char       *notes_image_alt;
 	char       *action_url;
+	char       *action_image;
+	char       *action_image_alt;
 	char       *icon_image;
 	char       *icon_image_alt;
 
@@ -726,7 +770,11 @@ typedef struct xodtemplate_serviceextinfo_struct{
 	int        have_service_description;
 	int        have_notes;
 	int        have_notes_url;
+	int        have_notes_image;
+	int        have_notes_image_alt;
 	int        have_action_url;
+	int        have_action_image;
+	int        have_action_image_alt;
 	int        have_icon_image;
 	int        have_icon_image_alt;
 
