diff --git a/sys/netgraph/ng_ppp.c b/sys/netgraph/ng_ppp.c
index ec5d62bd0754..b2b0cb0a4466 100644
--- a/sys/netgraph/ng_ppp.c
+++ b/sys/netgraph/ng_ppp.c
@@ -128,7 +128,6 @@ MALLOC_DEFINE(M_NETGRAPH_PPP, "netgraph_ppp", "netgraph ppp node");
 #define PROT_VJUNCOMP		0x002f
 
 /* Multilink PPP definitions */
-#define MP_MIN_MRRU		1500		/* per RFC 1990 */
 #define MP_INITIAL_SEQ		0		/* per RFC 1990 */
 #define MP_MIN_LINK_MRU		32
 
@@ -1985,6 +1984,12 @@ ng_ppp_mp_xmit(node_p node, item_p item, uint16_t proto)
 		    priv->activeLinks[0], plen));
 	}
 
+	/* Check peer's MRRU for this bundle. */
+	if (plen > priv->conf.mrru) {
+		NG_FREE_ITEM(item);
+		return (EMSGSIZE);
+	}
+
 	/* Extract mbuf. */
 	NGI_GET_M(item, m);
 
@@ -2540,10 +2545,6 @@ ng_ppp_config_valid(node_p node, const struct ng_ppp_node_conf *newConf)
 			return (0);
 	}
 
-	/* Check bundle parameters */
-	if (newConf->bund.enableMultilink && newConf->bund.mrru < MP_MIN_MRRU)
-		return (0);
-
 	/* Disallow changes to multi-link configuration while MP is active */
 	if (priv->numActiveLinks > 0 && newNumLinksActive > 0) {
 		if (!priv->conf.enableMultilink