diff --git a/dlls/wow64/syscall.c b/dlls/wow64/syscall.c
index 952b862a37d06f5300d64fc0eccacc905b2465d1..74fc8d9905eb7144a18267ceca4696a10094c0bb 100644
--- a/dlls/wow64/syscall.c
+++ b/dlls/wow64/syscall.c
@@ -79,6 +79,7 @@ static const SYSTEM_SERVICE_TABLE *psdwhwin32;
 static void *   (WINAPI *pBTCpuGetBopCode)(void);
 static void     (WINAPI *pBTCpuProcessInit)(void);
 static void     (WINAPI *pBTCpuSimulate)(void);
+static NTSTATUS (WINAPI *pBTCpuResetToConsistentState)( EXCEPTION_POINTERS * );
 
 
 void *dummy = RtlUnwind;
@@ -534,6 +535,7 @@ static DWORD WINAPI process_init( RTL_RUN_ONCE *once, void *param, void **contex
     module = load_64bit_module( get_cpu_dll_name() );
     GET_PTR( BTCpuGetBopCode );
     GET_PTR( BTCpuProcessInit );
+    GET_PTR( BTCpuResetToConsistentState );
     GET_PTR( BTCpuSimulate );
 
     module = load_64bit_module( L"wow64win.dll" );
@@ -769,3 +771,14 @@ void WINAPI Wow64LdrpInitialize( CONTEXT *context )
     thread_init();
     pBTCpuSimulate();
 }
+
+
+/**********************************************************************
+ *           Wow64PrepareForException  (wow64.@)
+ */
+void WINAPI Wow64PrepareForException( EXCEPTION_RECORD *rec, CONTEXT *context )
+{
+    EXCEPTION_POINTERS ptrs = { rec, context };
+
+    pBTCpuResetToConsistentState( &ptrs );
+}
diff --git a/dlls/wow64/wow64.spec b/dlls/wow64/wow64.spec
index 69275b2580fcd9df0f12e45608d2fa75d6fefc98..5c3f39c50f1d817bf8b6c66ff8bcfbd5ac7994b3 100644
--- a/dlls/wow64/wow64.spec
+++ b/dlls/wow64/wow64.spec
@@ -15,7 +15,7 @@
 @ stub Wow64NotifyUnsimulateComplete
 @ stdcall Wow64PassExceptionToGuest(ptr)
 @ stub Wow64PrepareForDebuggerAttach
-@ stub Wow64PrepareForException
+@ stdcall Wow64PrepareForException(ptr ptr)
 @ stub Wow64RaiseException
 @ stub Wow64ShallowThunkAllocObjectAttributes32TO64_FNC
 @ stub Wow64ShallowThunkAllocSecurityQualityOfService32TO64_FNC