if (!dev)
                return NULL;
 
-       if (dev->type != ARPHRD_IEEE802154) {
+       /* Check on mtu is currently a hacked solution because lowpan
+        * and wpan have the same ARPHRD type.
+        */
+       if (dev->type != ARPHRD_IEEE802154 || dev->mtu != IEEE802154_MTU) {
                dev_put(dev);
                return NULL;
        }
 
        idx = 0;
        for_each_netdev(net, dev) {
-               if (idx < s_idx || (dev->type != ARPHRD_IEEE802154))
+               /* Check on mtu is currently a hacked solution because lowpan
+                * and wpan have the same ARPHRD type.
+                */
+               if (idx < s_idx || dev->type != ARPHRD_IEEE802154 ||
+                   dev->mtu != IEEE802154_MTU)
                        goto cont;
 
                if (ieee802154_nl_fill_iface(skb, NETLINK_CB(cb->skb).portid,
        int rc;
 
        for_each_netdev(net, dev) {
-               if (idx < first_dev || dev->type != ARPHRD_IEEE802154)
+               /* Check on mtu is currently a hacked solution because lowpan
+                * and wpan have the same ARPHRD type.
+                */
+               if (idx < first_dev || dev->type != ARPHRD_IEEE802154 ||
+                   dev->mtu != IEEE802154_MTU)
                        goto skip;
 
                data.ops = ieee802154_mlme_ops(dev);