diff --git a/src/arch/aarch64/hypervisor/handler.c b/src/arch/aarch64/hypervisor/handler.c
index c3c6f77..7b9ac24 100644
--- a/src/arch/aarch64/hypervisor/handler.c
+++ b/src/arch/aarch64/hypervisor/handler.c
@@ -402,21 +402,31 @@
 static void smc_handler(struct vcpu *vcpu, struct spci_value *ret,
 			struct vcpu **next)
 {
-	uint32_t func = vcpu->regs.r[0];
+	struct spci_value args = {
+		.func = vcpu->regs.r[0],
+		.arg1 = vcpu->regs.r[1],
+		.arg2 = vcpu->regs.r[2],
+		.arg3 = vcpu->regs.r[3],
+		.arg4 = vcpu->regs.r[4],
+		.arg5 = vcpu->regs.r[5],
+		.arg6 = vcpu->regs.r[6],
+		.arg7 = vcpu->regs.r[7],
+	};
 
-	if (psci_handler(vcpu, func, vcpu->regs.r[1], vcpu->regs.r[2],
-			 vcpu->regs.r[3], &ret->func, next)) {
+	if (psci_handler(vcpu, args.func, args.arg1, args.arg2, args.arg3,
+			 &ret->func, next)) {
 		return;
 	}
 
-	if (spci_handler(ret, next)) {
+	if (spci_handler(&args, next)) {
+		*ret = args;
 		update_vi(*next);
 		return;
 	}
 
-	switch (func & ~SMCCC_CONVENTION_MASK) {
+	switch (args.func & ~SMCCC_CONVENTION_MASK) {
 	case HF_DEBUG_LOG:
-		ret->func = api_debug_log(vcpu->regs.r[1], vcpu);
+		ret->func = api_debug_log(args.arg1, vcpu);
 		return;
 	}
 
diff --git a/test/vmapi/arch/aarch64/smccc.c b/test/vmapi/arch/aarch64/smccc.c
index 11f4dc3..b078e27 100644
--- a/test/vmapi/arch/aarch64/smccc.c
+++ b/test/vmapi/arch/aarch64/smccc.c
@@ -35,3 +35,22 @@
 	EXPECT_EQ(smc_res.arg6, UINT64_C(0x6666666666666666));
 	EXPECT_EQ(smc_res.arg7, UINT64_C(0x77777777));
 }
+
+/**
+ * Checks that calling SPCI_FEATURES via an SMC works as expected.
+ * The spci_features helper function uses an HVC, but an SMC should also work.
+ */
+TEST(smccc, spci_features_smc)
+{
+	struct spci_value ret;
+
+	ret = smc32(SPCI_FEATURES_32, SPCI_VERSION_32, 0, 0, 0, 0, 0, 0);
+	EXPECT_EQ(ret.func, SPCI_SUCCESS_32);
+	EXPECT_EQ(ret.arg1, 0);
+	EXPECT_EQ(ret.arg2, 0);
+	EXPECT_EQ(ret.arg3, 0);
+	EXPECT_EQ(ret.arg4, 0);
+	EXPECT_EQ(ret.arg5, 0);
+	EXPECT_EQ(ret.arg6, 0);
+	EXPECT_EQ(ret.arg7, 0);
+}
