The 1999 United Kingdom local elections were held on Thursday 6 May 1999. All Scottish and Welsh unitary authorities had all their seats elected. In England a third of the seats on each of the metropolitan boroughs were elected along with elections in many of the unitary authorities and district councils. There were no local elections in Northern Ireland.

The elections saw Labour, now in their second year of government, suffer a setback as the opposition Conservatives gained ground. The councils up for election had last been contested in 1995, which saw Labour achieve record gains and the Conservatives lose over 2,000 seats.

Results

{| class="wikitable"

|-

! colspan="2" rowspan="2" | Party

! colspan="4" | Councils

! colspan="4" | Councillors

|-

! valign="top" | Gain

! valign="top" | Loss

! valign="top" | Change

! style="text-align: right;" valign="top" | Total

! valign="top" | Gain

! valign="top" | Loss

! style="text-align: right;" valign="top" | Change

! style="text-align: right;" valign="top" | Total

|-

|

| align="right" |3

| align="right" |35

| align="right" |–32

| align="right" |137

| align="right" |89

| align="right" |1,239

| align="right" |–1,150

| align="right" |4,802

|-

|

| align="right" |48

| align="right" |0

| align="right" |+48

| align="right" |61

| align="right" |1,391

| align="right" |43

| align="right" |+1,348

| align="right" |3,766

|-

|

| align="right" |7

| align="right" |18

| align="right" |-11

| align="right" |20

| align="right" |383

| align="right" |473

| align="right" |-90

| align="right" |2,609

|-

|

| align="right" |0

| align="right" |1

| align="right" |-1

| align="right" |1

| align="right" |41

| align="right" |24

| align="right" |+17

| align="right" |208

|-

|

| align="right" |2

| align="right" |0

| align="right" |+2

| align="right" |3

| align="right" |89

| align="right" |7

| align="right" |+81

| align="right" |205

|-

|

| align="right" |2

| align="right" |5

| align="right" |-3

| align="right" |18

| align="right" |174

| align="right" |299

| align="right" |-125

| align="right" |1,551

|-

| bgcolor="#d3d3d3" |

| Other

| align="right" |0

| align="right" |0

| align="right" |0

| align="right" |0

| align="right" |66

| align="right" |145

| align="right" |–79

| align="right" |191

|-

|

| align="right" |40

| align="right" |42

| align="right" |-2

| align="right" |122

| align="right" |—

| align="right" |—

| align="right" |—

| align="right" |—

|}

England

Metropolitan boroughs

All 36 English Metropolitan borough councils had one third of their seats up for election.

{| class="wikitable sortable" border="1"

|-

! scope="col" | Council

! colspan=2 | Previous control

! colspan=2 | Result

! class="unsortable" scope="col"| Details

|-

! scope="row" style="text-align: left;" |Barnsley

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Birmingham

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Bolton

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Bradford

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Bury

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Calderdale

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Coventry

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Doncaster

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Dudley

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Gateshead

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Kirklees

|

| gain

|Details

|-

! scope="row" style="text-align: left;" |Knowsley

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Leeds

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Liverpool

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Manchester

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Newcastle upon Tyne

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |North Tyneside

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Oldham

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Rochdale

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Rotherham

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Salford

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Sandwell

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Sefton

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Sheffield

|

| gain

|Details

|-

! scope="row" style="text-align: left;" |Solihull

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |South Tyneside

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |St Helens

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Stockport

|

| gain

|Details

|-

! scope="row" style="text-align: left;" |Sunderland

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Tameside

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Trafford

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Wakefield

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Walsall

|

| gain

|Details

|-

! scope="row" style="text-align: left;" |Wigan

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Wirral

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Wolverhampton

|

| hold

|Details

|}

Unitary authorities

Whole council

{| class="wikitable sortable" border="1"

|-

! scope="col" | Council

! colspan=2 | Previous control

! colspan=2 | Result

! class="unsortable" scope="col"| Details

|-

! scope="row" style="text-align: left;" |Bath and North East Somerset ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Brighton and Hove

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Bristol ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Bournemouth

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Darlington

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |East Riding of Yorkshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Leicester

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Luton

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Middlesbrough

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Milton Keynes

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |North East Lincolnshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |North Lincolnshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |North Somerset ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;" |Poole

|

| gain

|Details

|-

! scope="row" style="text-align: left;" |Redcar and Cleveland

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Rutland

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |South Gloucestershire ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;" |Stockton-on-Tees

|

| hold

|Details

|-

|}

‡ New ward boundaries

Third of council

{| class="wikitable sortable" border="1"

|-

! scope="col" | Council

! colspan=2 | Previous control

! colspan=2 | Result

! class="unsortable" scope="col"| Details

|-

! scope="row" style="text-align: left;" |Blackburn with Darwen

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Derby

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Halton

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Hartlepool

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Kingston upon Hull

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Peterborough

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Portsmouth

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Reading

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Slough

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Southampton

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Southend-on-Sea

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Stoke-on-Trent

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Swindon

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Thurrock

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Warrington

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |Wokingham

|

| hold

|Details

|-

! scope="row" style="text-align: left;" |York

|

| hold

|Details

|-

|}

District councils

Whole council

{| class="wikitable sortable" border="1"

|-

! scope="col" | Council

! colspan=2 | Previous control

! colspan=2 | Result

! class="unsortable" scope="col"| Details

|-

! scope="row" style="text-align: left;"|Allerdale ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Alnwick ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Arun

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Ashfield

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Ashford

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Aylesbury Vale

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Babergh

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Barrow-in-Furness ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Berwick-upon-Tweed ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Blaby

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Blyth Valley ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Bolsover

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Boston ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Braintree

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Breckland

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Bridgnorth

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Bromsgrove

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Broxbourne ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Broxtowe

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Canterbury

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Caradon

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Carlisle ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Carrick

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Castle Morpeth ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Castle Point

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Charnwood

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Chelmsford

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Chesterfield

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Chester-le-Street

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Chester ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Chichester

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Chiltern

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Christchurch

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Congleton ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Copeland ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Corby ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Cotswold

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Crewe and Nantwich ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Dacorum ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Dartford

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Daventry ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Derbyshire Dales

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Derwentside

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Dover

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Durham

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Easington

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|East Cambridgeshire

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|East Devon

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|East Dorset

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|East Hampshire

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|East Hertfordshire ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|East Lindsey ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|East Northamptonshire ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|East Staffordshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Eden ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Ellesmere Port and Neston ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Epsom and Ewell

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Erewash

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Fenland

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Forest Heath

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Forest of Dean ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Fylde

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Gedling

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Gravesham

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Guildford

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Hambleton

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Harborough

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Hertsmere ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|High Peak

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Hinckley and Bosworth

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Horsham

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Kennet

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Kerrier

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Kettering ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|King's Lynn and West Norfolk

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Lancaster

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Lewes

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Lichfield

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Lincoln ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Macclesfield ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Maldon

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Mansfield

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Melton

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Mendip ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Mid Bedfordshire

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Mid Devon

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Mid Suffolk

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Mid Sussex

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|New Forest

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Newark and Sherwood

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|North Cornwall

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|North Devon

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|North Dorset

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|North East Derbyshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|North Hertfordshire ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|North Kesteven ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|North Norfolk

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|North Shropshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|North Warwickshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|North West Leicestershire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|North Wiltshire

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Northampton ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Oadby and Wigston

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Oswestry

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Purbeck ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Restormel

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Ribble Valley

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Richmondshire

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Rother

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Rushcliffe

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Ryedale

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Salisbury

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Scarborough

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Sedgefield

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Sedgemoor ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Selby

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Sevenoaks

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Shepway

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|South Bucks

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|South Derbyshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|South Hams ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|South Holland ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|South Kesteven ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|South Lakeland ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|South Norfolk

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|South Northamptonshire ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|South Oxfordshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|South Ribble

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|South Shropshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|South Somerset ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|South Staffordshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Spelthorne

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|St Albans ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|St Edmundsbury

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Stafford

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Staffordshire Moorlands

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Stevenage ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Suffolk Coastal

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Surrey Heath

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Taunton Deane ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Teesdale

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Teignbridge

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Tendring

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Test Valley

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Tewkesbury

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Thanet

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Three Rivers ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Tonbridge and Malling

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Torridge

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Tynedale ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Uttlesford

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Vale of White Horse

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Vale Royal ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Wansbeck ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Warwick

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Watford ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Waverley

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Wealden

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Wear Valley

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Wellingborough ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Welwyn Hatfield ‡

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|West Devon

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|West Dorset

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|West Lindsey ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|West Somerset ‡

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|West Wiltshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Wychavon

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Wycombe

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Wyre

|

| gain

|Details

|}

‡ New ward boundaries

Third of council

{| class="wikitable sortable" border="1"

|-

! scope="col" | Council

! colspan=2 | Previous control

! colspan=2 | Result

! class="unsortable" scope="col"| Details

|-

! scope="row" style="text-align: left;"|Adur

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Amber Valley

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Basildon

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Basingstoke and Deane

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Bassetlaw

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Bedford

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Brentwood

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Broadland

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Burnley

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Cambridge

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Cannock Chase

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Cheltenham

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Cherwell

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Chorley

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Colchester

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Craven

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Crawley

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Eastbourne

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Eastleigh

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Elmbridge

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Epping Forest

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Exeter

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Fareham

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Gloucester

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Gosport

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Great Yarmouth

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Harlow

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Harrogate

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Hart

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Hastings

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Havant

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Huntingdonshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Hyndburn

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Ipswich

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Maidstone

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Mole Valley

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Newcastle-under-Lyme

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Norwich

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Nuneaton and Bedworth

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Oxford

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Pendle

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Penwith

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Preston

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Redditch

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Reigate and Banstead

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Rochford

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Rossendale

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Rugby

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Runnymede

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Rushmoor

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Shrewsbury and Atcham

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|South Bedfordshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|South Cambridgeshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Stratford-on-Avon

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Stroud

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Swale

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Tamworth

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Tandridge

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Tunbridge Wells

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Waveney

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|West Lancashire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|West Oxfordshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Weymouth and Portland

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Winchester

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Woking

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Worcester

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Worthing

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Wyre Forest

|

| gain

|Details

|}

Scotland

{| class="wikitable sortable" border="1"

|-

! scope="col" | Council

! colspan=2 | Previous control

! colspan=2 | Result

! class="unsortable" scope="col"| Details

|-

! scope="row" style="text-align: left;"|Aberdeen

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Aberdeenshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Angus

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Argyll and Bute

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Clackmannanshire

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Dumfries and Galloway

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Dundee

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|East Ayrshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|East Dunbartonshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|East Lothian

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|East Renfrewshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Edinburgh

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Falkirk

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Fife

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Glasgow

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Highland

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Inverclyde

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Midlothian

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Moray

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Na h-Eileanan Siar

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|North Ayrshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|North Lanarkshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Orkney Islands

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Perth and Kinross

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Renfrewshire

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Scottish Borders

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Shetland Islands

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|South Ayrshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|South Lanarkshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Stirling

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|West Dunbartonshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|West Lothian

|

| hold

|Details

|}

Wales

{| class="wikitable sortable" border="1"

|-

! scope="col" | Council

! colspan=2 | Previous control

! colspan=2 | Result

! class="unsortable" scope="col"| Details

|-

! scope="row" style="text-align: left;"|Blaenau Gwent

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Bridgend

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Caerphilly

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Cardiff

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Carmarthenshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Ceredigion

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Conwy

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Denbighshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Flintshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Gwynedd

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Isle of Anglesey

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Merthyr Tydfil

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Monmouthshire

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Neath Port Talbot

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Newport

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Pembrokeshire

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Powys

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Rhondda Cynon Taf

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Swansea

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Torfaen

|

| hold

|Details

|-

! scope="row" style="text-align: left;"|Vale of Glamorgan

|

| gain

|Details

|-

! scope="row" style="text-align: left;"|Wrexham

|

| gain

|Details

|}

References

  • Vote 1999 BBC News
  • The local elections of 6 May 1999. House of Commons Library Research Paper 99/52.