--- net/bluetooth/l2cap.c- 2005-05-25 15:35:10.000000000 +0100 +++ net/bluetooth/l2cap.c 2005-05-25 15:37:45.000000000 +0100 @@ -1356,12 +1356,13 @@ /* Configure output options and let the other side know * which ones we don't like. */ - if (pi->conf_mtu < pi->omtu) { - l2cap_add_conf_opt(ptr, L2CAP_CONF_MTU, 2, pi->omtu); - result = L2CAP_CONF_UNACCEPT; - } else { - pi->omtu = pi->conf_mtu; - } + if (pi->omtu == 0) { + /* If we don't care about the MTU, use peer's proposal */ + pi->omtu = pi->conf_mtu; + } else if (pi->conf_mtu < pi->omtu) { + l2cap_add_conf_opt(ptr, L2CAP_CONF_MTU, 2, pi->omtu); + result = L2CAP_CONF_UNACCEPT; + } BT_DBG("sk %p result %d", sk, result); return result;