diff --git a/src/Reactor/LLVMReactor.cpp b/src/Reactor/LLVMReactor.cpp
index 559df5b..0653574 100644
--- a/src/Reactor/LLVMReactor.cpp
+++ b/src/Reactor/LLVMReactor.cpp
@@ -879,7 +879,6 @@
 {
 	const Capabilities Caps =
 	{
-		true, // CallSupported
 		true, // CoroutinesSupported
 	};
 
diff --git a/src/Reactor/Reactor.hpp b/src/Reactor/Reactor.hpp
index b958b2d..5997132 100644
--- a/src/Reactor/Reactor.hpp
+++ b/src/Reactor/Reactor.hpp
@@ -58,7 +58,6 @@
 {
 	struct Capabilities
 	{
-		bool CallSupported;       // Support for rr::Call()
 		bool CoroutinesSupported; // Support for rr::Coroutine<F>
 	};
 	extern const Capabilities Caps;
diff --git a/src/Reactor/ReactorUnitTests.cpp b/src/Reactor/ReactorUnitTests.cpp
index 55bbff1..75702fb 100644
--- a/src/Reactor/ReactorUnitTests.cpp
+++ b/src/Reactor/ReactorUnitTests.cpp
@@ -1136,12 +1136,6 @@
 
 TEST(ReactorUnitTests, Call)
 {
-	if (!rr::Caps.CallSupported)
-	{
-		SUCCEED() << "rr::Call() not supported";
-		return;
-	}
-
 	struct Class
 	{
 		static int Callback(Class *p, int i, float f)
@@ -1173,12 +1167,6 @@
 
 TEST(ReactorUnitTests, CallMemberFunction)
 {
-	if (!rr::Caps.CallSupported)
-	{
-		SUCCEED() << "rr::Call() not supported";
-		return;
-	}
-
 	struct Class
 	{
 		int Callback(int argI, float argF)
@@ -1210,12 +1198,6 @@
 
 TEST(ReactorUnitTests, CallMemberFunctionIndirect)
 {
-	if (!rr::Caps.CallSupported)
-	{
-		SUCCEED() << "rr::Call() not supported";
-		return;
-	}
-
 	struct Class
 	{
 		int Callback(int argI, float argF)
@@ -1247,12 +1229,6 @@
 
 TEST(ReactorUnitTests, CallImplicitCast)
 {
-	if (!rr::Caps.CallSupported)
-	{
-		SUCCEED() << "rr::Call() not supported";
-		return;
-	}
-
 	struct Class
 	{
 		static void Callback(Class *c, const char* s)
@@ -1278,12 +1254,6 @@
 
 TEST(ReactorUnitTests, CallExternalCallRoutine)
 {
-	if (!rr::Caps.CallSupported)
-	{
-		SUCCEED() << "rr::Call() not supported";
-		return;
-	}
-
 	// routine1 calls Class::Func, passing it a pointer to routine2, and Class::Func calls routine2
 
 	auto routine2 = [] {
diff --git a/src/Reactor/SubzeroReactor.cpp b/src/Reactor/SubzeroReactor.cpp
index 17740a4..1c94c5e 100644
--- a/src/Reactor/SubzeroReactor.cpp
+++ b/src/Reactor/SubzeroReactor.cpp
@@ -165,7 +165,6 @@
 {
 	const Capabilities Caps =
 	{
-		true, // CallSupported
 		false, // CoroutinesSupported
 	};
 
