
The 2006 Annual Exhibition took place on 11th November and proved to be another very successful event with a good turnout of members and guests . As this year has been an exceptional one for migrants it was not surprising that many exhibits displayed specimens of rare migrants , and several moth species new to Britain . As an experiment this year , and in response to requests made in the questionnaire circulated last year , Pemberley Books were invited to have a book stand at the exhibition , and it is hoped that this was a financial success for them . No doubt the BENHS Council will consider whether to repeat this venture in future years . In past years trading has been limited to the Society 's own publications plus those of the London Natural History Society , and the Royal Entomological Society , with whom we have strong links . Around 40 people stayed to enjoy an excellent evening meal at Imperial College , a fitting end to a most enjoyable exhibition . The date of the 2007 exhibition will be posted to this site as soon as the booking has been made and confirmed . It is likely to be held on Saturday 10th November 2007 at Imperial College . Hope to see you there . 