return tipc_link_mss(tipc_bc_sndlink(net));
 }
 
-void tipc_bcast_disable_rcast(struct net *net)
+void tipc_bcast_toggle_rcast(struct net *net, bool supp)
 {
-       tipc_bc_base(net)->rcast_support = false;
+       tipc_bc_base(net)->rcast_support = supp;
 }
 
 static void tipc_bcbase_calc_bc_threshold(struct net *net)
 
 void tipc_bcast_inc_bearer_dst_cnt(struct net *net, int bearer_id);
 void tipc_bcast_dec_bearer_dst_cnt(struct net *net, int bearer_id);
 int  tipc_bcast_get_mtu(struct net *net);
-void tipc_bcast_disable_rcast(struct net *net);
+void tipc_bcast_toggle_rcast(struct net *net, bool supp);
 int tipc_mcast_xmit(struct net *net, struct sk_buff_head *pkts,
                    struct tipc_mc_method *method, struct tipc_nlist *dests,
                    u16 *cong_link_cnt);
 
 
        /* Disable replicast if even a single peer doesn't support it */
        if (link_is_bc_rcvlink(l) && !(peer_caps & TIPC_BCAST_RCAST))
-               tipc_bcast_disable_rcast(net);
+               tipc_bcast_toggle_rcast(net, false);
 
        return true;
 }
 
                        tn->capabilities &= temp_node->capabilities;
                }
 
+               tipc_bcast_toggle_rcast(net,
+                                       (tn->capabilities & TIPC_BCAST_RCAST));
+
                goto exit;
        }
        n = kzalloc(sizeof(*n), GFP_ATOMIC);
        list_for_each_entry_rcu(temp_node, &tn->node_list, list) {
                tn->capabilities &= temp_node->capabilities;
        }
+       tipc_bcast_toggle_rcast(net, (tn->capabilities & TIPC_BCAST_RCAST));
        trace_tipc_node_create(n, true, " ");
 exit:
        spin_unlock_bh(&tn->node_list_lock);
        list_for_each_entry_rcu(temp_node, &tn->node_list, list) {
                tn->capabilities &= temp_node->capabilities;
        }
-
+       tipc_bcast_toggle_rcast(peer->net,
+                               (tn->capabilities & TIPC_BCAST_RCAST));
        spin_unlock_bh(&tn->node_list_lock);
        return deleted;
 }
        list_for_each_entry_rcu(temp_node, &tn->node_list, list) {
                tn->capabilities &= temp_node->capabilities;
        }
+       tipc_bcast_toggle_rcast(net, (tn->capabilities & TIPC_BCAST_RCAST));
        err = 0;
 err_out:
        tipc_node_put(peer);