diff --git a/lib/ChangeLog b/lib/ChangeLog
index 82ea6fd..3b83604 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -3,6 +3,8 @@
 	* thread.c: (thread_cancel_event) the number of pending events
 	  cancelled is potentially useful information, dont throw it away,
 	  pass it back to the caller.
+	* sockunion.c: (sockunion_getsockname) use MTYPE_SOCKUNION, not TMP
+	  (sockunion_getpeername) ditto
 
 2005-05-15 Paul Jakma <paul@dishone.st>
 
diff --git a/lib/sockunion.c b/lib/sockunion.c
index a636c64..e79f034 100644
--- a/lib/sockunion.c
+++ b/lib/sockunion.c
@@ -582,14 +582,14 @@
 
   if (name.sa.sa_family == AF_INET)
     {
-      su = XCALLOC (MTYPE_TMP, sizeof (union sockunion));
+      su = XCALLOC (MTYPE_SOCKUNION, sizeof (union sockunion));
       memcpy (su, &name, sizeof (struct sockaddr_in));
       return su;
     }
 #ifdef HAVE_IPV6
   if (name.sa.sa_family == AF_INET6)
     {
-      su = XCALLOC (MTYPE_TMP, sizeof (union sockunion));
+      su = XCALLOC (MTYPE_SOCKUNION, sizeof (union sockunion));
       memcpy (su, &name, sizeof (struct sockaddr_in6));
 
       if (IN6_IS_ADDR_V4MAPPED (&su->sin6.sin6_addr))
@@ -636,14 +636,14 @@
 
   if (name.sa.sa_family == AF_INET)
     {
-      su = XCALLOC (MTYPE_TMP, sizeof (union sockunion));
+      su = XCALLOC (MTYPE_SOCKUNION, sizeof (union sockunion));
       memcpy (su, &name, sizeof (struct sockaddr_in));
       return su;
     }
 #ifdef HAVE_IPV6
   if (name.sa.sa_family == AF_INET6)
     {
-      su = XCALLOC (MTYPE_TMP, sizeof (union sockunion));
+      su = XCALLOC (MTYPE_SOCKUNION, sizeof (union sockunion));
       memcpy (su, &name, sizeof (struct sockaddr_in6));
 
       if (IN6_IS_ADDR_V4MAPPED (&su->sin6.sin6_addr))
