Index: uspace/srv/net/udp/assoc.c
===================================================================
--- uspace/srv/net/udp/assoc.c	(revision f303f2cf17466cfa96a47fb4cacbaa7484ec3e23)
+++ uspace/srv/net/udp/assoc.c	(revision 071a2c601fac2101a98c133b9823c0326c0f876b)
@@ -275,8 +275,8 @@
 
 	rc = udp_transmit_pdu(pdu);
+	udp_pdu_delete(pdu);
+
 	if (rc != EOK)
 		return EIO;
-
-	udp_pdu_delete(pdu);
 
 	return EOK;
@@ -335,4 +335,5 @@
 		/* XXX Generate ICMP error. */
 		/* XXX Might propagate error directly by error return. */
+		udp_msg_delete(msg);
 		return;
 	}
Index: uspace/srv/net/udp/udp_type.h
===================================================================
--- uspace/srv/net/udp/udp_type.h	(revision f303f2cf17466cfa96a47fb4cacbaa7484ec3e23)
+++ uspace/srv/net/udp/udp_type.h	(revision 071a2c601fac2101a98c133b9823c0326c0f876b)
@@ -43,6 +43,5 @@
 #include <inet/addr.h>
 
-#define UDP_FRAGMENT_SIZE 4096
-
+#define UDP_FRAGMENT_SIZE 65535
 
 typedef enum {
