diff --git a/res/res_fax.c b/res/res_fax.c
index 315f0003b8ebae58f3fb5ecc541ffea673e424cf..f03fdc912a78853ab0ade89af786ce16e20b6ccb 100644
--- a/res/res_fax.c
+++ b/res/res_fax.c
@@ -2914,6 +2914,11 @@ static int fax_gateway_start(struct fax_gateway *gateway, struct ast_fax_session
 	struct ast_fax_session *s;
 	int start_res;
 
+	/* if the fax gateway is already started then do nothing */
+	if (gateway->s && gateway->s->state != AST_FAX_STATE_RESERVED) {
+		return 0;
+	}
+
 	/* create the FAX session */
 	if (!(s = fax_session_new(details, chan, gateway->s, gateway->token))) {
 		gateway->token = NULL;