We have an application which allows user to perform Drag and Drop operations. The problem we are facing now is the application crash. System works fine for some time and allows user to perform many drag drops successfully. But after running for some time and user perform a drag and drop the system crashes.
Following stack trace we are getting while system crashes.

XtDispatchEvent [Event.c]
RemoveAllPMgr [libXm.so.3]
XtCallCallbackList [Callback.c]
Recursive [Destroy.c]
XtPhase2Destroy [Destroy.c]
_XtDoPhase2Destroy [Destroy.c]
XtDestroyWidget [Destroy.c]
DragDropFinish [libXm.so.3]
DropConvertCallback [libXm.so.3]
DoLocalTransfer [Selection.c]

Ours is a 32-Bit application running in the Solaris/Linux. We are using the Motif 2.3.1 Version

We had run a IBM Rational Purify for the application to find memory issues. We could find one memory issue as below.
SBR(Stack array Bounds Read)
SBR: Stack array bounds read (36 times)
This is occurring while in:
XtDispatchEvent [Event.c]
RemoveAllPMgr [libXm.so.3]
XtCallCallbackList [Callback.c]
Recursive [Destroy.c]
XtPhase2Destroy [Destroy.c]
_XtDoPhase2Destroy [Destroy.c]
XtDestroyWidget [Destroy.c]
DragDropFinish [libXm.so.3]
DropConvertCallback [libXm.so.3]
DoLocalTransfer [Selection.c]
Reading 4 bytes from 0xffbee478.
Frame pointer 0xffbee458
Address 0xffbee478 is 32 bytes above stack pointer in function XtCallCallbackList.
This happens when the Drag Drop completes

Please note that here the XtDestroyWidget is called by MOTIF itself. We believe this is to destroy the DragContext created by us using the XmDragStart. Since the XtDestroyWidget is called by the MOTIF from DragDropFinish, we cannot stop calling it.
To prevent the SBR(Stack array Bounds Read), we have removed all the XmNdestroyCallback callbacks functions for the DragContext widget using the below command.
XtRemoveAllCallbacks(dc, XmNdestroyCallback);

But even after this removal the SBR(Stack array Bounds Read) is happening same as previous.
Can you please let us know why the call back function is called even after we removed the callbacks ?.

Also i had tried the a sample program from the Motif Programming Manual (Volume 6A). The sample program can be found in the below link.
Motif Programming Manual (Volume 6A): 22 - Drag and Drop
file_manager.c and editor_dnd.c are the example i took.
For these program also when we ran IBM Rational Purify, SBR raised

SBR: Stack array bounds read (117 times)
This is occurring while in:
XtDispatchEvent [Event.c]
RemoveAllPMgr [libXm.so.3]
XtCallCallbackList [Callback.c]
Recursive [Destroy.c]
XtPhase2Destroy [Destroy.c]
_XtDoPhase2Destroy [Destroy.c]
XtDispatchEvent [Event.c]
XtAppMainLoop [Event.c]
Reading 4 bytes from 0xffbeea10.
Frame pointer 0xffbee9f0
Address 0xffbeea10 is 32 bytes above stack pointer in function XtCallCallbackList.

Can you please let me know is there any way to avoid this SBR happening here?.
Also is it possible to check is a Bug in motif?