diff --git a/res/res_fax.c b/res/res_fax.c
index 364bb735d15df315997492297f04910edbb61828..5c188032a1f11b18d3e1a7aa3b5b53971d878322 100644
--- a/res/res_fax.c
+++ b/res/res_fax.c
@@ -992,6 +992,7 @@ static struct ast_fax_session *fax_session_new(struct ast_fax_session_details *d
 	if (reserved) {
 		s = reserved;
 		ao2_ref(reserved, +1);
+		ao2_unlink(faxregistry.container, reserved);
 
 		/* NOTE: we don't consume the reference to the reserved
 		 * session. The session returned from fax_session_new() is a