
mainland Europe . Before you know it you could be rubbing shoulders with Claudia Schiffer in Majorca , Elton John in the south of France or Madonna and Cliff Richard in Portugal . But if you 're buying as an investment , you 'll have to wait some time before you make a profit as prices rise more slowly on the Continent than they do in the UK . Another option is letting through an agent when you 're not using your holiday home . Property in ski resorts can be particularly profitable when used in this way . And remember that even though property is cheaper , the purchase process is more expensive than at home , adding 10 to 15 per cent to the initial price . Add to that renovation costs and the expense of getting there and you 'll end up paying substantially more . " Contact your lender to find out costs because they do vary considerably from country to country , " says David Wells of Abbey National France . " And budget before you commit yourself . Do n't buy on impulse . Instead , take time to look around and compare and contrast prices . " Just like buying in the UK , it 's vital to do your research first . Check local services like doctors , schools and transport , and look into the taxes , especially if you 're planning to live there full-time . It 's also a good idea to find out what the weather 's like off-season . The most popular areas to buy in France include the Cote d'Azur , alpine ski resorts and Normandy . Italy is more expensive , especially the popular Tuscany and Umbria regions . And in Spain the Costa del Sol remains the number-one choice for British buyers , followed by the Costa Blanca and the Balearic and Canary Islands . Sales go through much quicker on the Continent . Legally-binding contracts are usually signed within one to two weeks so make sure you have all the financial and legal details sorted out in advance . Abbey National , Barclays , the Woolwich and the Norwich and Peterborough all offer loans on property overseas . Or you could go through a British broker like John Charcol who can put you in touch with a local mortgage provider . Your lender will also help you set up a local bank account . Or if you 've paid off a chunk of your home in Britain , you can remortgage and use the released equity to buy overseas . Remember that if you borrow in sterling and then convert the cash , there may be a currency risk as conversion rates can change overnight . It could be a better idea to borrow in euros so that if the currency does depreciate , at least the mortgage will , too . A local , bilingual solicitor can help the whole process go smoothly . Your lender should be able to suggest one . Notary fees are unlikely to be much more than five per cent of the value of the property in France , Spain , Italy or Portugal . However , your lawyer might collect stamp duty and tax direct , so it might look like more . Estate agents ' fees also vary , and they usually charge the buyer rather than the seller . But your first step should be to take advice from experts like Abbey National ( freephone 0800 449 090 ) . Alternatively , visit a Homes Overseas exhibition . Call 020 7939 9852 for more details . THE KINSELLAS : MALAGA TONY Kinsella and his wife Elizabeth , from Molesworth , Cambridgeshire , have just bought a villa near Malaga in Spain for £ 146,000 . They have two children , Leanne , eight , and Vaughan , five . IT'S always been our dream to buy overseas and we 'll eventually retire there - but for now it 's a holiday home . We bought about a month ago and have already had a two-week holiday there , although we spent most of the time hanging curtains and fitting carpets . We needed to move quite quickly when we saw the house . We had enough to pay the deposit and we sorted out a mortgage with the Norwich and Peterborough building society as soon as we got back . We borrowed about £ 70,000 and it all went through their Gibraltar office . Our rate is 5.74 per cent and we have a five-year fixed deal . It 's remarkably simple if you take the same precautions as you would at home . You need a good solicitor and must make sure your finances are sorted . Friends recommended a Spanish lawyer who speaks perfect English . All the documents were translated and verified before we signed . Elizabeth and the kids will spend the school holidays there and I 'll join them as much as I can . The kids are even learning Spanish . THE BUCKLES : DORDOGNE NEVILLE and Kirsten Buckle , from Swindon , Wilts , bought a gite in the Dordogne , France , three years ago for £ 72,000 . They have two children , Morgan , two , and Imogen , 18 months . WE did n't have any particular reason for choosing the Dordogne . We liked France and knew we wanted to buy in the south . We fell in love with the property . We found it through a local agent that advertised in the British press . Once you 've made an offer it 's legally binding , so your finances have to be sorted out beforehand . We could n't afford it right out , so we got a mortgage with Abbey National France . You set up an account in the UK and pay into it monthly . They transfer it to a French account and we pay the mortgage in euros . We budgeted £ 350 a month to allow for currency fluctuations . At the moment we pay just £ 330 a month . Luckily my mother-in-law spoke French and Abbey National do all their documents in both languages . You need to do your research - the legal system , inheritance laws and so on . The fees and taxes add 14 per cent on the purchase price . We rent it out during the summer which helps pay the mortgage . If you like red wine and good weather , it 's a great place to be . UK Pages - Vauxhall Zafira Spare Wheel Theft - Holiday Apartments Spain - Website Promotion - Work Advice - Site Map - Spanish Villas - Website design - Wireless networking - Home Shopping 