
5 miles from Garthyfog ... . The Mawddach rises to the north of the Rhobell Fawr Mountain and flows through Ganllwyd , Llanelltyd and Penmaenpool and on through its long estuary to the sea at Barmouth . Upper reaches of the River Mawddach On the Mawddach , as with most other rivers in Gwynedd , there is a marked contrast between the upper reaches - steep and rocky , requiring great care in wet weather - and the gentler lower reaches , some of them quite short , where the course meanders through meadows or woodland . Bontwernddu pool on the River Wnion The Mawddach 's largest tributary is the Wnion , a very fine sea trout river , while the smaller River Eden is also a valuable game fishery . Following a major pollution in 1984 , when 2000 adult salmon and sea trout were killed along with many thousands of juvenile fish , The Mawddach Trust was formed to restock the river from a purpose-built hatchery . The Mawddach and its tributaries contain neither grayling nor coarse fish . As a result , coarse angling in this part of Wales is confined to stillwaters . Insect life Apart from some early season olives and the ubiquitous iron blue and blue-winged olive , it is to the sedge flies , stoneflies and , in particular , terrestrial insects that river trout fishers should turn their attention on the Gwynedd rivers , and the Mawddach is no exception . Season dates and byelaws Salmon and sea trout : 20 March to 17 October . Fly and spinner only from 20 March to 15 April and from 7 October to 17 October . Trout ( non-migratory ) : 3 March to 30 September , except for downstream of the following points : Mawddach , Llenelltyd Bridge ( A470 ) Wnion , Dr Williams ' School footbridge below Dolgellau . On these lower reaches the trout-fishing season dates are 31 May to 30 September . Note : Please check the Environment Agency Wales latest edition byelaws booklet before you go fishing , as changes may have occurred since our information was last updated . 