diff --git a/src/Spring/Spring.Web.Conversation.NHibernate3/Data/NHibernate/Support/SessionPerConversationScope.cs b/src/Spring/Spring.Web.Conversation.NHibernate3/Data/NHibernate/Support/SessionPerConversationScope.cs index 0baa2cdf..24431f33 100644 --- a/src/Spring/Spring.Web.Conversation.NHibernate3/Data/NHibernate/Support/SessionPerConversationScope.cs +++ b/src/Spring/Spring.Web.Conversation.NHibernate3/Data/NHibernate/Support/SessionPerConversationScope.cs @@ -435,9 +435,13 @@ namespace Spring.Data.NHibernate.Support conversation.RootSessionPerConversation = null; } else - { - if (tmpSession.IsConnected) - tmpSession.Disconnect(); + { + if (tmpSession.IsConnected) + { + IDbConnection conn = tmpSession.Disconnect(); + if (conn != null && conn.State == ConnectionState.Open) + conn.Close(); + } } RemoveSession(tmpSession); }