diff --git a/modules/access/dsm/access.c b/modules/access/dsm/access.c
index 783549740243b1bbedc8f8e16f0d56b76c501f17..1276cd500e3523d3a614bfa3867d5504aac5db23 100644
--- a/modules/access/dsm/access.c
+++ b/modules/access/dsm/access.c
@@ -306,6 +306,8 @@ static void Close( vlc_object_t *p_this )
 
     if( p_sys->cache_entry )
         vlc_access_cache_AddEntry( &dsm_cache, p_sys->cache_entry );
+    else if( p_sys->p_session != NULL )
+        smb_session_destroy( p_sys->p_session );
 
     free( p_sys );
 }