diff --git a/asterisk/Asterisk_Tests.ttcn b/asterisk/Asterisk_Tests.ttcn
index 6982146..b7981eb 100644
--- a/asterisk/Asterisk_Tests.ttcn
+++ b/asterisk/Asterisk_Tests.ttcn
@@ -562,6 +562,60 @@
 }
 
 /* Test IMS re-registration based on Expires (TS 24.229 5.1.1.4.1, RFC 3261 10.3)*/
+private function f_TC_ims_registration_423_interval_too_brief(charstring id) runs on IMS_ConnHdlr {
+	f_create_sip_expect(valueof(ts_SipUrl_from_Addr_Union(g_pars.subscr.registrar_sip_record.addr)));
+
+	var template (present) PDU_SIP_Request exp_req :=
+		tr_SIP_REGISTER(g_pars.registrar_sip_req_uri,
+				?,
+				tr_From(),
+				tr_To(),
+				tr_Via_from(?),
+				expires := tr_Expires(int2str(g_pars.subscr.registrar_expires)));
+	SIP.receive(exp_req) -> value g_rx_sip_req;
+
+	/* Double it and expect UAC to use it. */
+	g_pars.subscr.registrar_expires := g_pars.subscr.registrar_expires * 2;
+
+	/* Tx 423 Interval Too Brief */
+	var template (value) PDU_SIP_Response tx_resp;
+	tx_resp := ts_SIP_Response_423_Interval_Too_Brief(
+				g_rx_sip_req.msgHeader.callId.callid,
+				g_rx_sip_req.msgHeader.fromField,
+				g_rx_sip_req.msgHeader.toField,
+				g_rx_sip_req.msgHeader.via,
+				g_rx_sip_req.msgHeader.cSeq.seqNumber,
+				minExpires := ts_MinExpires(int2str(g_pars.subscr.registrar_expires)),
+				server := g_pars.server_name,
+				userAgent := omit);
+	SIP.send(tx_resp);
+
+	g_pars.subscr.exp_uac_expires := g_pars.subscr.registrar_expires;
+	as_IMS_register();
+
+	as_IMS_unregister();
+	setverdict(pass);
+}
+testcase TC_ims_registration_423_interval_too_brief() runs on test_CT {
+	var IMS_ConnHdlrPars pars;
+	var IMS_ConnHdlr vc_conn;
+	f_init();
+	pars := f_init_IMS_ConnHdlrPars();
+	vc_conn := f_start_handler_IMS(refers(f_TC_ims_registration_423_interval_too_brief), pars);
+
+	f_AMI_IMS_register(pars);
+
+	/* Stay registered for one second */
+	f_sleep(1.0);
+
+	/* Trigger unregistration: */
+	f_AMI_IMS_unregister(pars);
+
+	vc_conn.done;
+	f_shutdown();
+}
+
+/* Test IMS re-registration based on Expires (TS 24.229 5.1.1.4.1, RFC 3261 10.3)*/
 private function f_TC_ims_reregistration(charstring id) runs on IMS_ConnHdlr {
 	f_create_sip_expect(valueof(ts_SipUrl_from_Addr_Union(g_pars.subscr.registrar_sip_record.addr)));
 	as_IMS_register();
@@ -780,6 +834,7 @@
 	execute( TC_ims_registration_timeout_resync_401Unauthorized() );
 	execute( TC_ims_registration_timeout_protected_100Trying() );
 	execute( TC_ims_registration_timeout_protected_200OK() );
+	execute( TC_ims_registration_423_interval_too_brief() );
 	execute( TC_ims_reregistration() );
 	execute( TC_ims_call_mo() );
 	execute( TC_ims_call_mo_noprecondition() );
diff --git a/asterisk/IMS_ConnectionHandler.ttcn b/asterisk/IMS_ConnectionHandler.ttcn
index ba2a2fd..674b281 100644
--- a/asterisk/IMS_ConnectionHandler.ttcn
+++ b/asterisk/IMS_ConnectionHandler.ttcn
@@ -94,6 +94,7 @@
 	SipAddr registrar_sip_record,
 	CallidString registrar_sip_call_id,
 	integer registrar_sip_seq_nr,
+	integer exp_uac_expires,
 	integer registrar_expires,
 	SipUrl local_sip_url_ext,
 	SipAddr local_sip_record,
@@ -215,6 +216,7 @@
 					   f_sip_str_quote(display_name)),
 	registrar_sip_call_id := hex2str(f_rnd_hexstring(15)) & "@" & domain,
 	registrar_sip_seq_nr := f_sip_rand_seq_nr(),
+	exp_uac_expires := c_def_expires,
 	registrar_expires := c_def_expires,
 	local_sip_url_ext := ts_SipUrl(ts_HostPort(domain, local_sip_port),
 				       ts_UserInfo(imsi)),
@@ -747,7 +749,7 @@
 				tr_From(),
 				tr_To(),
 				tr_Via_from(?),
-				expires := tr_Expires(int2str(c_def_expires)),
+				expires := tr_Expires(int2str(g_pars.subscr.exp_uac_expires)),
 				require := tr_Require(superset("sec-agree")),
 				security_client := tr_Security_client(superset(tr_Security_mechanism("ipsec-3gpp",
 												     superset(tr_Param("alg","hmac-sha-1-96"))))),
diff --git a/asterisk/expected-results.xml b/asterisk/expected-results.xml
index 65a495b..26c2fa4 100644
--- a/asterisk/expected-results.xml
+++ b/asterisk/expected-results.xml
@@ -12,6 +12,7 @@
   <testcase classname='Asterisk_Tests' name='TC_ims_registration_timeout_resync_401Unauthorized' time='MASKED'/>
   <testcase classname='Asterisk_Tests' name='TC_ims_registration_timeout_protected_100Trying' time='MASKED'/>
   <testcase classname='Asterisk_Tests' name='TC_ims_registration_timeout_protected_200OK' time='MASKED'/>
+  <testcase classname='Asterisk_Tests' name='TC_ims_registration_423_interval_too_brief' time='MASKED'/>
   <testcase classname='Asterisk_Tests' name='TC_ims_reregistration' time='MASKED'/>
   <testcase classname='Asterisk_Tests' name='TC_ims_call_mo' time='MASKED'/>
   <testcase classname='Asterisk_Tests' name='TC_ims_call_mo_noprecondition' time='MASKED'/>
diff --git a/library/SIP_Templates.ttcn b/library/SIP_Templates.ttcn
index ce5998b..26f7ea8 100644
--- a/library/SIP_Templates.ttcn
+++ b/library/SIP_Templates.ttcn
@@ -245,6 +245,12 @@
 	fromParams := fromParams
 }
 
+// [20.23]
+template (value) MinExpires ts_MinExpires(template (value) DeltaSec deltaSec := "800000") := {
+	fieldName := MIN_EXPIRES_E,
+	deltaSec := deltaSec
+}
+
 // [RFC3455 5.4] + 3GPP 24.229 V8.7.0
 template (present) Access_net_spec tr_Access_net_spec(template (present) charstring access_type := ?,
 						      template SemicolonParam_List access_info := *) := {
@@ -685,6 +691,7 @@
 		template (omit)Authorization authorization := omit,
 		template (omit) Allow allow := ts_Allow(c_SIP_defaultMethods),
 		template (omit) Expires expires := omit,
+		template (omit) MinExpires minExpires := omit,
 		template (omit) P_Associated_Uri p_associated_uri := omit,
 		template (omit) RAck rack := omit,
 		template (omit) Require require := omit,
@@ -712,6 +719,7 @@
 	},
 	expires := expires,
 	fromField := from_addr,
+	minExpires := minExpires,
 	p_associated_uri := p_associated_uri,
 	rack := rack,
 	require := require,
@@ -1152,6 +1160,34 @@
 	payload := omit
 }
 
+/* Tx 423 Interval Too Brief */
+template (value) PDU_SIP_Response
+ts_SIP_Response_423_Interval_Too_Brief(
+	template (value) CallidString call_id,
+	template (value) From from_addr,
+	template (value) To to_addr,
+	Via via,
+	integer seq_nr,
+	charstring method := "REGISTER",
+	template (omit) Allow allow := omit,
+	template (value) MinExpires minExpires := ts_MinExpires(),
+	template (omit) Server server := omit,
+	template (omit) Supported supported := omit,
+	template (omit) UserAgent userAgent := omit) := {
+	statusLine := ts_SIP_StatusLine(423, "Interval Too Brief"),
+	msgHeader := ts_SIP_msgh_std(call_id, from_addr, to_addr, omit, method, seq_nr,
+				     via,
+				     content_length := f_ContentLength(omit),
+				     content_type := f_ContentTypeOrOmit(ts_CT_SDP, omit),
+				     allow := allow,
+				     minExpires := minExpires,
+				     server := server,
+				     supported := supported,
+				     userAgent := userAgent),
+	messageBody := omit,
+	payload := omit
+}
+
 template (present) PDU_SIP_Response
 tr_SIP_Response(template CallidString call_id,
 		template From from_addr,
