Index: src/libcfa/exception.c
===================================================================
--- src/libcfa/exception.c	(revision 307a732f5fa4b97b19f405fc215fcd76f473e3a1)
+++ src/libcfa/exception.c	(revision ad0be81733371b9a8190b6b92c4a8457cf5f4801)
@@ -37,7 +37,7 @@
 // This macro should be the only thing that needs to change across machines.
 // Used in the personality function, way down in termination.
-// struct _Unwind_Context * -> _Unwind_Reason_Code(*)()
+// struct _Unwind_Context * -> _Unwind_Reason_Code(*)(exception *)
 #define MATCHER_FROM_CONTEXT(ptr_to_context) \
-	(*(_Unwind_Reason_Code(**)())(_Unwind_GetCFA(ptr_to_context) + 8))
+	(*(_Unwind_Reason_Code(**)(exception*))(_Unwind_GetCFA(ptr_to_context) + 8))
 
 
@@ -261,7 +261,7 @@
 					// _Unwind_Reason_Code (*matcher)() = (_Unwind_Reason_Code (*)())lsd_info.LPStart + imatcher;					
 
-					_Unwind_Reason_Code (*matcher)() =
+					_Unwind_Reason_Code (*matcher)(exception *) =
 						MATCHER_FROM_CONTEXT(context);
-					int index = matcher(shared_stack.current_exception);
+					int index = matcher(&shared_stack.current_exception);
 					_Unwind_Reason_Code ret = (0 == index)
 						? _URC_CONTINUE_UNWIND : _URC_HANDLER_FOUND;
