after developing several webapps that all had a similar setup with spring, hibernate and c3p0 as connectionpool I wanted to investigate a problem that i noticed everytime: C
Have you tried to specify the destroy-method?
<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">