diff --git a/tests/Makefile.am b/tests/Makefile.am
index b1db7485d6807a0314ae47ee8363cc08906130be..9ffc798c0b65aa802c020ec5ea86b85b18445349 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -129,7 +129,9 @@ check_PROGRAMS = check_version check_init check_uuid \
 		 simple_group_client \
 		 simple_group_injector \
 		 simple_interlock_client_1 \
+		 redundant_interlock_client_1 \
 		 simple_interlock_client_2 \
+		 redundant_interlock_client_2 \
 		 colliding_client_1 \
 		 colliding_client_2 \
 		 reentrant_client \
@@ -165,6 +167,16 @@ CLIENT1_OPS="DECLARE cdo1 1025\
              DISPOSE cdo1 -1\
              DISPOSE cdo2 -1"
 
+R_CLIENT1_OPS="DECLARE cdo1a 11\
+             SEAL cdo1a -1 \
+             DECLARE cdo2 20480\
+             REQUIRE cdo2 -1\
+             OFFER cdo1a -1 \
+             DEMAND cdo2 -1\
+             WITHDRAW cdo1a -1\
+             DISPOSE cdo1a -1\
+             DISPOSE cdo2 -1"
+
 CLIENT2_OPS="DECLARE cdo2 20480\
              SEAL cdo2 -1 \
              DECLARE cdo1 1025\
@@ -172,72 +184,83 @@ CLIENT2_OPS="DECLARE cdo2 20480\
              DECLARE cdo1a 11     REQUIRE cdo1a -1   \
              OFFER cdo2 -1 \
              DEMAND cdo1 -1\
-	     			 RETRACT cdo1a -1       DISPOSE cdo1a -1 \
+	     	 RETRACT cdo1a -1      DISPOSE cdo1a -1 \
              WITHDRAW cdo2 -1\
              DISPOSE cdo2 -1\
              DISPOSE cdo1 -1"
 
-
-ASYNC_CLIENT1_OPS="DECLARE cdo1 1025\
-						 DECLARE cdo2 1024\
-		         DECLARE cdo3 20480\
-						 WAIT cdo1 -1\
-						 SEAL cdo1 -1\
-						 WAIT cdo2 -1\
-						 SEAL cdo2 -1\
-						 WAIT cdo3 -1\
-						 SEAL cdo3 -1\
-						 WAIT cdo3 -1\
-						 REQUIRE cdo3 -1\
-						 WAIT cdo1 -1\
-						 WAIT cdo2 -1\
-						 WAIT cdo3 -1\
-						 OFFER cdo1 -1\
-						 WAIT cdo1 -1\
-						 DEMAND cdo3 -1\
-						 WAIT cdo3 -1\
-						 WITHDRAW cdo1 -1\
-						 WAIT cdo1 -1\
-						 DISPOSE cdo1 -1\
-						 DISPOSE cdo2 -1\
-						 DISPOSE cdo3 -1"
-
-ASYNC_CLIENT2_OPS="DECLARE cdo3 20480\
-	           DECLARE cdo2 1024\
-						 WAIT cdo2 -1\
-						 WAIT cdo3 -1\
-						 SEAL cdo3 -1\
+R_CLIENT2_OPS="DECLARE cdo2 20480\
+             SEAL cdo2 -1 \
              DECLARE cdo1 1025\
-						 WAIT cdo1 -1\
-						 SEAL cdo1 -1\
-						 SEAL cdo2 -1\
-						 WAIT cdo1 -1\
-						 WAIT cdo2 -1\
              REQUIRE cdo1 -1\
-						 REQUIRE cdo2 -1\
-						 WAIT cdo3 -1\
-						 WAIT cdo1 -1\
-             OFFER cdo3 -1\
-						 WAIT cdo3 -1\
+             DECLARE cdo1a 11     REQUIRE cdo1a -1   \
+             OFFER cdo2 -1 \
              DEMAND cdo1 -1\
-						 WAIT cdo1 -1\
-             WITHDRAW cdo3 -1\
-						 WAIT cdo2 -1\
-						 RETRACT cdo2 -1\
-						 WAIT cdo2 -1\
-						 WAIT cdo3 -1\
+	     	 DEMAND cdo1a -1       DISPOSE cdo1a -1 \
+             WITHDRAW cdo2 -1\
              DISPOSE cdo2 -1\
-						 DISPOSE cdo3 -1\
              DISPOSE cdo1 -1"
 
+ASYNC_CLIENT1_OPS="	DECLARE cdo1 1025\
+				   	DECLARE cdo2 1024\
+		           	DECLARE cdo3 20480\
+				 	WAIT cdo1 -1\
+					SEAL cdo1 -1\
+					WAIT cdo2 -1\
+					SEAL cdo2 -1\
+					WAIT cdo3 -1\
+					SEAL cdo3 -1\
+					WAIT cdo3 -1\
+					REQUIRE cdo3 -1\
+					WAIT cdo1 -1\
+					WAIT cdo2 -1\
+					WAIT cdo3 -1\
+					OFFER cdo1 -1\
+					WAIT cdo1 -1\
+					DEMAND cdo3 -1\
+					WAIT cdo3 -1\
+					WITHDRAW cdo1 -1\
+					WAIT cdo1 -1\
+					DISPOSE cdo1 -1\
+					DISPOSE cdo2 -1\
+					DISPOSE cdo3 -1"
+
+ASYNC_CLIENT2_OPS=" DECLARE cdo3 20480\
+	           		DECLARE cdo2 1024\
+					WAIT cdo2 -1\
+					WAIT cdo3 -1\
+					SEAL cdo3 -1\
+             		DECLARE cdo1 1025\
+					WAIT cdo1 -1\
+					SEAL cdo1 -1\
+					SEAL cdo2 -1\
+					WAIT cdo1 -1\
+					WAIT cdo2 -1\
+             		REQUIRE cdo1 -1\
+					REQUIRE cdo2 -1\
+					WAIT cdo3 -1\
+					WAIT cdo1 -1\
+             		OFFER cdo3 -1\
+					WAIT cdo3 -1\
+             		DEMAND cdo1 -1\
+					WAIT cdo1 -1\
+             		WITHDRAW cdo3 -1\
+					WAIT cdo2 -1\
+					RETRACT cdo2 -1\
+					WAIT cdo2 -1\
+					WAIT cdo3 -1\
+             		DISPOSE cdo2 -1\
+					DISPOSE cdo3 -1\
+             		DISPOSE cdo1 -1"
+
 INJECTOR_OPS="\
 			       DECLARE cdo1 1023      SEAL cdo1 -1       OFFER cdo1 -1    \
 			       DECLARE cdo2 1023000   SEAL cdo2 -1       OFFER cdo2 -1    \
 			       DECLARE cdo3 102       SEAL cdo3 -1       OFFER cdo3 -1    \
 			       DECLARE cdo1a 107      REQUIRE cdo1a -1                    \
-			 	     RETRACT cdo1a -1       DISPOSE cdo1a -1                    \
+			 	   RETRACT cdo1a -1       DISPOSE cdo1a -1                    \
 			       WITHDRAW cdo1 -1       WITHDRAW cdo2 -1   WITHDRAW cdo3 -1 \
-			 	     DISPOSE  cdo3 -1       DISPOSE  cdo2 -1   DISPOSE  cdo1 -1"
+			 	   DISPOSE  cdo3 -1       DISPOSE  cdo2 -1   DISPOSE  cdo1 -1"
 
 
 
@@ -247,6 +270,11 @@ simple_interlock_client_1_CPPFLAGS = $(AM_CPPFLAGS)  -DCOMPONENT_ID=1 -DCLIENT_A
 simple_interlock_client_2_SOURCES = simple_interlock_client.c
 simple_interlock_client_2_CPPFLAGS = $(AM_CPPFLAGS)  -DCOMPONENT_ID=2 -DCLIENT_ARGS=$(CLIENT2_OPS)
 
+redundant_interlock_client_1_SOURCES = simple_interlock_client.c
+redundant_interlock_client_1_CPPFLAGS = $(AM_CPPFLAGS)  -DCOMPONENT_ID=1 -DCLIENT_ARGS=$(R_CLIENT1_OPS)
+redundant_interlock_client_2_SOURCES = simple_interlock_client.c
+redundant_interlock_client_2_CPPFLAGS = $(AM_CPPFLAGS)  -DCOMPONENT_ID=2 -DCLIENT_ARGS=$(R_CLIENT2_OPS)
+
 colliding_client_1_SOURCES = colliding_client.c
 colliding_client_1_CPPFLAGS = $(AM_CPPFLAGS)  -DREPETITION=1
 colliding_client_2_SOURCES = colliding_client.c
diff --git a/tests/check_pm_redundant_interlock.sh.in b/tests/check_pm_redundant_interlock.sh.in
index 6e14f68cb0df3383a9785b8498be3973dbb8c285..10d03f739d822296b0cc0bafae646a6f93deccdd 100644
--- a/tests/check_pm_redundant_interlock.sh.in
+++ b/tests/check_pm_redundant_interlock.sh.in
@@ -49,6 +49,8 @@ PM_CMD="@top_builddir@/tests/simple_pool_manager"
 #  'O' -- offer 'R' -- require -- 'D' demand -- 'W' withdraw
 #  'S' -- sleep
 CLIENT_CMD="@top_builddir@/tests/simple_interlock_client"
+R_CLIENT_CMD="@top_builddir@/tests/redundant_interlock_client"
+
 
 # start pool manager, connect its output to fd 3:
 # (we need to run in a subshell to start a new process group)
@@ -95,13 +97,14 @@ export MSTRO_POOL_MANAGER_INFO
 (env MSTRO_COMPONENT_NAME="Client1" MSTRO_TRANSPORT_DEFAULT="MIO" MSTRO_MIO_CONFIG="./mio-config-C1a.yaml"  MSTRO_LOG_COLOR_ERRORS=1 MSTRO_LOG_COLOR="BLUE" ${CLIENT_CMD}_1 -n) || exit 99  &
 
 # start client 1 again (simulating redundant participants)
-(env MSTRO_COMPONENT_NAME="Client1a" MSTRO_TRANSPORT_DEFAULT="MIO" MSTRO_MIO_CONFIG="./mio-config-C1a.yaml"  MSTRO_LOG_COLOR_ERRORS=1 MSTRO_LOG_COLOR="BLUE" ${CLIENT_CMD}_1 -n) || exit 99  &
+(env MSTRO_COMPONENT_NAME="Client1a" MSTRO_TRANSPORT_DEFAULT="MIO" MSTRO_MIO_CONFIG="./mio-config-C1a.yaml"  MSTRO_LOG_COLOR_ERRORS=1 MSTRO_LOG_COLOR="BLUE" ${R_CLIENT_CMD}_1 -n) || exit 99  &
 
 # start client 2
-(env MSTRO_COMPONENT_NAME="Client2" MSTRO_TRANSPORT_DEFAULT="MIO" MSTRO_MIO_CONFIG="./mio-config-C2a.yaml"  MSTRO_LOG_COLOR_ERRORS=1 MSTRO_LOG_COLOR="CYAN" ${CLIENT_CMD}_2 -n) || exit 99  &
+(env MSTRO_COMPONENT_NAME="Client2" MSTRO_TRANSPORT_DEFAULT="MIO" MSTRO_MIO_CONFIG="./mio-config-C2a.yaml"  MSTRO_LOG_COLOR_ERRORS=1 MSTRO_LOG_COLOR="CYAN" ${R_CLIENT_CMD}_2 -n) || exit 99  &
 
 wait %1 || exit 99
 wait %2 || exit 99
+wait %3 || exit 99
 
 # trap normal script termination: close pipe to pool manager
 terminate ${PM_PID} 0