Index: /trunk/src/VBox/Main/src-client/GuestDnDSourceImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/GuestDnDSourceImpl.cpp	(revision 51619)
+++ /trunk/src/VBox/Main/src-client/GuestDnDSourceImpl.cpp	(revision 51620)
@@ -102,4 +102,9 @@
 #else /* VBOX_WITH_DRAG_AND_DROP */
 
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
+
     return GuestDnDBase::isFormatSupported(aFormat, aSupported);
 #endif /* VBOX_WITH_DRAG_AND_DROP */
@@ -112,4 +117,9 @@
 #else /* VBOX_WITH_DRAG_AND_DROP */
 
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
+
     return GuestDnDBase::getFormats(aFormats);
 #endif /* VBOX_WITH_DRAG_AND_DROP */
@@ -122,4 +132,9 @@
 #else /* VBOX_WITH_DRAG_AND_DROP */
 
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
+
     return GuestDnDBase::addFormats(aFormats);
 #endif /* VBOX_WITH_DRAG_AND_DROP */
@@ -131,4 +146,9 @@
     ReturnComNotImplemented();
 #else /* VBOX_WITH_DRAG_AND_DROP */
+
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
 
     return GuestDnDBase::removeFormats(aFormats);
Index: /trunk/src/VBox/Main/src-client/GuestDnDTargetImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/GuestDnDTargetImpl.cpp	(revision 51619)
+++ /trunk/src/VBox/Main/src-client/GuestDnDTargetImpl.cpp	(revision 51620)
@@ -101,4 +101,9 @@
 #else /* VBOX_WITH_DRAG_AND_DROP */
 
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
+
     return GuestDnDBase::isFormatSupported(aFormat, aSupported);
 #endif /* VBOX_WITH_DRAG_AND_DROP */
@@ -111,4 +116,9 @@
 #else /* VBOX_WITH_DRAG_AND_DROP */
 
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
+
     return GuestDnDBase::getFormats(aFormats);
 #endif /* VBOX_WITH_DRAG_AND_DROP */
@@ -121,4 +131,9 @@
 #else /* VBOX_WITH_DRAG_AND_DROP */
 
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
+
     return GuestDnDBase::addFormats(aFormats);
 #endif /* VBOX_WITH_DRAG_AND_DROP */
@@ -130,4 +145,9 @@
     ReturnComNotImplemented();
 #else /* VBOX_WITH_DRAG_AND_DROP */
+
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
 
     return GuestDnDBase::removeFormats(aFormats);
