diff --git a/realm/include/realm_tests.h b/realm/include/realm_tests.h
index 1351415..ac839ac 100644
--- a/realm/include/realm_tests.h
+++ b/realm/include/realm_tests.h
@@ -22,6 +22,7 @@
 bool test_realm_sve_fill_regs(void);
 bool test_realm_sve_cmp_regs(void);
 bool test_realm_sve_undef_abort(void);
+bool test_realm_multiple_rec_psci_denied_cmd(void);
 
 #endif /* REALM_TESTS_H */
 
diff --git a/realm/realm.mk b/realm/realm.mk
index debbda2..9b0a230 100644
--- a/realm/realm.mk
+++ b/realm/realm.mk
@@ -28,6 +28,7 @@
 	aarch64/realm_exceptions.S					\
 	realm_debug.c							\
 	realm_interrupt.c						\
+	realm_multiple_rec.c						\
 	realm_pauth.c							\
 	realm_payload_main.c						\
 	realm_pmuv3.c							\
diff --git a/realm/realm_multiple_rec.c b/realm/realm_multiple_rec.c
new file mode 100644
index 0000000..bc357bc
--- /dev/null
+++ b/realm/realm_multiple_rec.c
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2023, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#include <stdio.h>
+
+#include <arch_features.h>
+#include <arch_helpers.h>
+#include <debug.h>
+#include <fpu.h>
+#include <host_realm_helper.h>
+#include <host_shared_data.h>
+#include <psci.h>
+#include "realm_def.h"
+#include <realm_rsi.h>
+#include <realm_tests.h>
+#include <realm_psci.h>
+#include <tftf_lib.h>
+
+#define CXT_ID_MAGIC 0x100
+static uint64_t is_secondary_cpu_booted;
+
+static void rec1_handler(u_register_t cxt_id)
+{
+	realm_printf("Realm: running on CPU = 0x%lx cxt_id= 0x%lx\n",
+			read_mpidr_el1() & MPID_MASK, cxt_id);
+	if (cxt_id < CXT_ID_MAGIC || cxt_id > CXT_ID_MAGIC + MAX_REC_COUNT) {
+		realm_printf("Realm: Wrong cxt_id\n");
+		rsi_exit_to_host(HOST_CALL_EXIT_FAILED_CMD);
+	}
+	is_secondary_cpu_booted++;
+	realm_cpu_off();
+}
+
+static void rec2_handler(u_register_t cxt_id)
+{
+	rsi_exit_to_host(HOST_CALL_EXIT_FAILED_CMD);
+}
+
+bool test_realm_multiple_rec_psci_denied_cmd(void)
+{
+	u_register_t ret;
+
+	is_secondary_cpu_booted = 0U;
+	ret = realm_cpu_on(1U, (uintptr_t)rec1_handler, 0x100);
+	if (ret != PSCI_E_DENIED) {
+		return false;
+	}
+
+	if (is_secondary_cpu_booted != 0U) {
+		rsi_exit_to_host(HOST_CALL_EXIT_FAILED_CMD);
+	}
+
+	ret = realm_psci_affinity_info(1U, MPIDR_AFFLVL0);
+	if (ret != PSCI_STATE_OFF) {
+		realm_printf("CPU 1 should have been off\n");
+		return false;
+	}
+
+	ret = realm_cpu_on(2U, (uintptr_t)rec2_handler, 0x102);
+	if (ret != PSCI_E_ALREADY_ON) {
+		realm_printf("CPU 2 should have been already on\n");
+		return false;
+	}
+	return true;
+}
diff --git a/realm/realm_payload_main.c b/realm/realm_payload_main.c
index 43cbf2d..2271221 100644
--- a/realm/realm_payload_main.c
+++ b/realm/realm_payload_main.c
@@ -74,6 +74,9 @@
 			realm_sleep_cmd();
 			test_succeed = true;
 			break;
+		case REALM_MULTIPLE_REC_PSCI_DENIED_CMD:
+			test_succeed = test_realm_multiple_rec_psci_denied_cmd();
+			break;
 		case REALM_PAUTH_SET_CMD:
 			test_succeed = test_realm_pauth_set_cmd();
 			break;
