Index: /trunk/src/VBox/HostServices/DragAndDrop/dndmanager.cpp
===================================================================
--- /trunk/src/VBox/HostServices/DragAndDrop/dndmanager.cpp	(revision 44101)
+++ /trunk/src/VBox/HostServices/DragAndDrop/dndmanager.cpp	(revision 44102)
@@ -514,8 +514,11 @@
 
     /* Advance progress info */
-    if (pSelf->m_pfnProgressCallback)
-        return pSelf->m_pfnProgressCallback(100.0 / pSelf->m_cbAll * pSelf->m_cbTransfered, DragAndDropSvc::DND_PROGRESS_RUNNING, pSelf->m_pvProgressUser);
-    else
-        return VINF_SUCCESS;
+    int rc = VINF_SUCCESS;
+    if (   pSelf->m_pfnProgressCallback
+        && pSelf->m_cbAll)
+        rc = pSelf->m_pfnProgressCallback((uint64_t)pSelf->m_cbTransfered * 100 / pSelf->m_cbAll,
+                                          DragAndDropSvc::DND_PROGRESS_RUNNING, pSelf->m_pvProgressUser);
+
+    return rc;
 }
 
@@ -740,5 +743,5 @@
         /* Create a new cancel message to inform the guest. */
         m_pCurMsg = new DnDHGCancelMessage();
-        m_pfnProgressCallback(100.0, DragAndDropSvc::DND_PROGRESS_CANCELLED, m_pvProgressUser);
+        m_pfnProgressCallback(100, DragAndDropSvc::DND_PROGRESS_CANCELLED, m_pvProgressUser);
     }
 
