diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index 6a78975..e44e204 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -3836,6 +3836,59 @@
 	f_shutdown(__BFILE__, __LINE__, final := true);
 }
 
+/* Verify PCU handles outbound Network Assisted Cell Change Cell Change (NACC,
+ * TS 44.060 sec 8.8) twice, the second time after caches timed out
+ */
+testcase TC_nacc_outbound_success_twice_nocache() runs on RAW_PCU_Test_CT {
+	var PollFnCtx pollctx;
+	var GprsMS ms;
+	var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default);
+	var MultislotCap_GPRS mscap_gprs := {
+		gprsmultislotclass := '00011'B,
+		gprsextendeddynalloccap := '0'B
+	};
+	var MSRadioAccessCapabilityV ms_racap := { valueof(ts_RaCapRec('0001'B /* E-GSM */, mscap_gprs, omit)) };
+	var template (value) RlcmacUlCtrlMsg cell_chf_notif;
+
+	/* Initialize osmo-bsc emulation neighbor resolution CTRL port */
+	f_ipa_ctrl_start_server(mp_ctrl_neigh_ip, mp_ctrl_neigh_port);
+
+	/* Initialize NS/BSSGP side */
+	f_init_bssgp();
+	/* Initialize GPRS MS side */
+	f_init_gprs_ms();
+	ms := g_ms[0]; /* We only use first MS in this test */
+
+	/* Initialize the PCU interface abstraction */
+	f_init_raw(testcasename(), info_ind);
+
+	/* Make sure we are not affected by full cache from previous tests */
+	f_pcuvty_flush_neigh_caches();
+	/* Set timeout values for caches so that entries will be erased before the second try */
+	f_pcuvty_set_neigh_caches(1, 1);
+
+	/* Establish BSSGP connection to the PCU */
+	f_bssgp_establish();
+	f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
+
+	/* Send PACKET RESOURCE REQUEST */
+	pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap));
+	/* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */
+	f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts);
+
+	/* Start NACC from MS side */
+	f_outbound_nacc_success(ms, info_ind);
+
+	/* CTRL client should have disconnected from us */
+	f_ipa_ctrl_wait_link_down();
+	/* wait for cache entries to time out */
+	f_sleep(2.0);
+	/* First NACC procedure is done, let's try to start a new one now that previous queries have timed out: */
+	f_outbound_nacc_success(ms, info_ind);
+
+	f_shutdown(__BFILE__, __LINE__, final := true);
+}
+
 /* Verify PCU transmits Pkt Cell Change Continue if RAC+CI resolution fails during outbound NACC procedure */
 testcase TC_nacc_outbound_rac_ci_resolve_conn_refused() runs on RAW_PCU_Test_CT {
 	var RlcmacDlBlock dl_block;
@@ -4174,6 +4227,7 @@
 	execute( TC_pcuif_info_ind_subsequent() );
 	execute( TC_nacc_outbound_success() );
 	execute( TC_nacc_outbound_success_twice() );
+	execute( TC_nacc_outbound_success_twice_nocache() );
 	execute( TC_nacc_outbound_rac_ci_resolve_conn_refused() );
 	execute( TC_nacc_outbound_rac_ci_resolve_timeout() );
 	execute( TC_nacc_outbound_rac_ci_resolve_fail_parse_response() );
