a method for an adaptive forward error correction in a passive optical network . the method comprises selecting an initial downstream fec code to be applied on downstream data transmitted from an optical line terminal to a plurality of optical network units of the pon ; communicating the selected downstream fec code to the plurality of onus ; receiving at least one downstream bit error ratio value from at least one onu of the plurality of onus , wherein the downstream ber value is measured respective to downstream data received at the at least one onu ; changing the selected downstream fec code to a new downstream fec code based on a plurality of downstream ber values measured by the at least one onu ; and communicating the new downstream fec code to the plurality of onus .