diff --git a/js/src/xpconnect/src/xpcwrappednative.cpp b/js/src/xpconnect/src/xpcwrappednative.cpp index 057f443c5453..e375fc499d3e 100644 --- a/js/src/xpconnect/src/xpcwrappednative.cpp +++ b/js/src/xpconnect/src/xpcwrappednative.cpp @@ -1444,10 +1444,10 @@ return_tearoff: if(XPCNativeWrapper::IsNativeWrapperClass(clazz)) { - if(pobj2) - *pobj2 = cur; - - return XPCNativeWrapper::GetWrappedNative(cur); + unsafeObj = + XPCNativeWrapper::GetWrappedNative(cur)->GetFlatJSObject(); + return GetWrappedNativeOfJSObject(cx, unsafeObj, funobj, pobj2, + pTearOff); } if(IsXPCSafeJSObjectWrapperClass(clazz) &&