
This two bedroom cottage is in a small hamlet about 5 mins from the village of Dournazac which has bar/restaurant , some small shops , post office . It is all on one level and is being sold with most of it 's furniture and fittings . Limoges airport is 40mins with flights to Stansted , Liverpool & Southampton . It is in the National Park of the Perigord/Limousin which is renowned for it 's beauty , lakes , woodlands and rolling countryside . The property is in good order throughout and the roof was renewed about 4 years ago . There are lovely views to the open countryside from the garden and there is a separate garage/workshop . The layout is as follows ( all measurements are approximate ) : SITTING ROOM 20.7m2 tiled floor , woodburning stove , wood ceiling , large window , glazed door togarden . SHOWER ROOM 5.5m2 tiled floor & walls , shower , toilet and wash-hand basin , electric radiator , w ashing machine , gas water heater , adjacent UTILITY ROOM 4.1m2 . BEDROOM 1 14.9m2 window to garden , wood burning stove , good parquet floor . BEDROOM 2 12.85m2 parquet floor , window to garden . KITCHEN 14.4m2 some fitted units , electric hot water heater , electric radiator , parquet floor , fridge 