diff --git a/src/mod/languages/mod_managed/managed/ManagedSession.cs b/src/mod/languages/mod_managed/managed/ManagedSession.cs
index 2de49d1bdb..d7c88e7c6e 100644
--- a/src/mod/languages/mod_managed/managed/ManagedSession.cs
+++ b/src/mod/languages/mod_managed/managed/ManagedSession.cs
@@ -47,7 +47,7 @@ namespace FreeSWITCH.Native
{
// SWITCH_DECLARE(void) InitManagedSession(ManagedSession *session, MonoObject *dtmfDelegate, MonoObject *hangupDelegate)
[DllImport("mod_managed.dll", CharSet = CharSet.Ansi, CallingConvention=CallingConvention.Cdecl)]
- static extern void InitManagedSession(IntPtr sessionPtr, DtmfCallback dtmfDelegate, Action hangupDelegate);
+ static extern void InitManagedSession(IntPtr sessionPtr, DtmfCallback dtmfDelegate, CdeclAction hangupDelegate);
/// Initializes the native ManagedSession. Must be called after Originate.
public void Initialize()
@@ -57,11 +57,11 @@ namespace FreeSWITCH.Native
// So we don't need to worry about GCHandles and all that....
// Info here: http://blogs.msdn.com/cbrumme/archive/2003/05/06/51385.aspx
this._inputCallbackRef = inputCallback;
- this._hangupCallback = hangupCallback;
- InitManagedSession(ManagedSession.getCPtr(this).Handle, inputCallback, hangupCallback);
+ this._hangupCallbackRef = hangupCallback;
+ InitManagedSession(ManagedSession.getCPtr(this).Handle, this._inputCallbackRef, this._hangupCallbackRef);
}
DtmfCallback _inputCallbackRef;
- CdeclAction _hangupCallback;
+ CdeclAction _hangupCallbackRef;
/// Function to execute when this session hangs up.
public Action HangupFunction { get; set; }