--- /dev/null
+--- xinetd-2.3.13/xinetd/service.c.orig 2003-11-16 12:44:10.000000000 +0000
++++ xinetd-2.3.13/xinetd/service.c 2005-12-11 14:21:52.494074000 +0000
+@@ -764,8 +764,8 @@
+ return FAILED;
+
+ if ( last == NULL ) {
+- last = SAIN( SVC_LAST_DGRAM_ADDR(sp) ) =
+- SAIN( calloc( 1, sizeof(union xsockaddr) ) );
++ last = SAIN(calloc(1, sizeof(union xsockaddr)));
++ SVC_LAST_DGRAM_ADDR(sp) = (union xsockaddr*)last;
+ }
+
+ (void) time( ¤t_time ) ;
+@@ -791,8 +791,8 @@
+ return FAILED;
+
+ if( last == NULL ) {
+- last = SAIN6(SVC_LAST_DGRAM_ADDR(sp)) =
+- SAIN6(calloc( 1, sizeof(union xsockaddr) ) );
++ last = SAIN6(calloc(1, sizeof(union xsockaddr)));
++ SVC_LAST_DGRAM_ADDR(sp) = (union xsockaddr*)last;
+ }
+
+ (void) time( ¤t_time ) ;