diff --git a/tests/t_client.rc-sample b/tests/t_client.rc-sample
index 2a4bdb4..003dec4 100644
--- a/tests/t_client.rc-sample
+++ b/tests/t_client.rc-sample
@@ -14,8 +14,8 @@
 #FPING_EXTRA_ARGS="-t 1000"
 
 # Load EXPECT_IFCONFIG* parameters from cache
-if [ -r "${top_builddir}/t_client_ips.rc" ]; then
-    . "${top_builddir}/t_client_ips.rc"
+if [ -r "${t_client_ips_rc}" ]; then
+    . "${t_client_ips_rc}"
 else
     echo "NOTICE: missing t_client_ips.rc will be auto-generated"
 fi
@@ -63,6 +63,12 @@
 # PING6_HOSTS_x      = "these hosts musts ping when openvpn is up (IPv6 fping6)"
 # EXPECT_FAIL_x      = "instead of waiting for connection wait for this error message"
 #
+# Note that the EXPECT_IFCONFIG{4,6} options are not generally required, the
+# tests will remember the ip address they got on the first run in t_client_ips.rc
+# and will expect to get the same address again. But it can be useful to hard-code
+# the IP when the server is expected to send a very specific address, e.g. when
+# using ccd on the server-side or in a P2P scenario.
+#
 # hook test options:
 #
 # CHECK_SKIP_x      = "commands to execute before openvpn, skip test on failure"
diff --git a/tests/t_client.sh.in b/tests/t_client.sh.in
index 0ef2ec5..9f32a5a 100755
--- a/tests/t_client.sh.in
+++ b/tests/t_client.sh.in
@@ -19,6 +19,9 @@
 srcdir="${srcdir:-.}"
 top_builddir="${top_builddir:-..}"
 openvpn="${openvpn:-${top_builddir}/src/openvpn/openvpn}"
+t_client_ips_rc="${t_client_ips_rc:-${top_builddir}/t_client_ips.rc}"
+update_t_client_ips="${update_t_client_ips:-${srcdir}/update_t_client_ips.sh}"
+
 if [ -r "${top_builddir}"/t_client.rc ] ; then
     . "${top_builddir}"/t_client.rc
 elif [ -r "${srcdir}"/t_client.rc ] ; then
@@ -326,7 +329,7 @@
     # If EXCEPT_IFCONFIG* variables for this test are missing, run an --up
     # script to generate them dynamically.
     if [ -z "$expect_ifconfig4" ] || [ -z "$expect_ifconfig6" ]; then
-        up="--setenv TESTNUM $SUF --setenv TOP_BUILDDIR ${top_builddir} --script-security 2 --up ${srcdir}/update_t_client_ips.sh"
+        up="--setenv TESTNUM $SUF --setenv RC ${t_client_ips_rc} --script-security 2 --up ${update_t_client_ips}"
     else
         up=""
     fi
diff --git a/tests/update_t_client_ips.sh b/tests/update_t_client_ips.sh
index 96e3826..013504f 100755
--- a/tests/update_t_client_ips.sh
+++ b/tests/update_t_client_ips.sh
@@ -2,9 +2,6 @@
 #
 # This --up script caches the IPs handed out by the test VPN server to a file
 # for later use.
-
-RC="$TOP_BUILDDIR/t_client_ips.rc"
-
 grep EXPECT_IFCONFIG4_$TESTNUM= $RC > /dev/null 2>&1
 if [ $? -ne 0 ]; then
     echo "EXPECT_IFCONFIG4_$TESTNUM=$ifconfig_local" >> $RC
