
The Swansea talkathon of the National Policy Forum on 15-17 January considered three final-year documents and six first-year documents . Reports of group discussions were collated and fed back to the whole Forum , where we had another attempt at inserting points unaccountably omitted by the note-takers , like the merits of universal benefits against means-testing . Every set of New Labour papers has its mantra . The Third Way was last year 's fashion , and in 1999 ' joined-up thinking ' is all the rage . In fact , Forum members proved rather more joined-up and forward-looking than the authors . Robin Cook stressed that Labour will only win a second term with fresh ideas and a full programme . Yet the papers concentrated on the Tory legacy and current government activity , not on plans for the next century . While this stuff belongs in campaign material , reminding people that there are worse beasts out there , by the election we will have to defend a four-year Labour legacy as well . There were many requests that second-year documents should highlight changes resulting from party comment , to counter cynicism about what happens to constituency resolutions and views from local forums . Several common themes emerged . First , all policies should be set in a European context . Tony Blair will have the support of activists , if not of Rupert Murdoch , whenever he calls the single currency referendum . Many people highlighted the rural dimension . Problems are different and less visible in the countryside , and they cannot just be relegated to agriculture , only six per cent of the rural economy . Existing differences between Scotland , Wales and England will increase with devolution , and were barely acknowledged . Joined-up thinking is not carried through where it might involve conflict . Health and education see family-friendly policies as essential in allowing staff to combine work with other commitments , while the economic commission praises the Private Finance Initiative and proposes a panel of business managers to advise on public service productivity . Warm words will clash with hard-headed accountancy . Wiltshire Healthcare Trust saved £ 315,000 with a rotating shift system , but lost at an industrial tribunal because this prevented nurses both working and caring for their children . Unpaid parental leave is useless to the many , and paid leave will make the CBI scream . Labour in government will have to choose . Revised papers will be published for discussion in CLPs and local policy forums . On second-year documents health , welfare reform , crime and justice constituencies can submit formal amendments . These go only to the policy commissions , so please copy everything to your Forum members . Final drafts for conference will be sent out in mid-June and we will have just a week to propose alternative positions , so we must know your concerns before then . Two problems . The papers were widely described as ' vacuous ' . If you 've never tried to amend a blancmange , now is your chance . And look for what is missing . How can we discuss health policy for the next five years without mentioning the private sector , and what it takes from the NHS and the taxpayer ? Over to you . We need the ammunition . Ann Black represents South East CLPs on the National Policy Forum . Blair floats PR for local government A report in the Financial Times on 26 January indicated that Tony Blair is planning to introduced proportional representation for local elections . The report says that Blair believes that PR would end years of Labour one-party rule in some of Britain 's cities a most helpful contribution to Labour 's campaign for the local elections in May ! Jack Straw apparently backs the move , telling the BBC : ' I 've said there 's a very different case when it comes to the voting systems at a local level . I do n't think the system of first past the post in multi-vacancy wards at a local level is necessarily the best one . ' The FT concluded : ' The introduction of PR for town hall elections would delight the Liberal Democrats , who have been pressing for the reform for years . ' Campaign Group AGM The Socialist Campaign Group of Labour MPs held its 1999 annual meeting on 20 January . John McDonnell MP was elected chair . Vice chairs are Tess Kingham , Lynne Jones and Jeremy Corbyn . Alan Simpson remains the secretary of the group and Bill Michie treasurer . The group has welcomed a number of new members over the year - most recently Frank Cook and Ian Gibson . 9 April for NEC nominations The NEC has ignored the objec-tions of the majority of constituency representatives on the national executive and brought forward the deadline for constituency nominations to the NEC , Conference Arrangements Committee , National Constitutional Committee and National Policy Forum to 9 April . Policy consultation deadline Labour Party policy documents on wel- fare reform , health and crime and justice will be circulated to local parties and affiliates in February for consultation . This follows their presentation to the National Policy Forum meeting in Swansea in January ( see report , page 3 ) . All three will be put to a final vote at this year 's annual conference . Responses to this consultation , including any amendments to the text of the documents must be received by Millbank not later than Tuesday 6 April only two months or less for local parties to respond . The National Policy Forum the only body which can amend policy documents or put forward minority reports to conference meets on 2-4 July . Any amendments or minority reports will need to be decided at this meeting . However , proposers of amendments which are not endorsed by the Joint Policy Committee have to show that 5 per cent of the NPF ( at least 9 representatives ) from three of the seven sections support the amendment . Members should make sure that copies of amendments are sent to NPF members . Campaign for Labour Party Democracy AGM Saturday 6th March - 10.30am to 4pm Conway Hall , Red Lion Square , London WC1 Details from 0181 458 1501 