Index: /trunk/src/VBox/Storage/VD.cpp
===================================================================
--- /trunk/src/VBox/Storage/VD.cpp	(revision 43738)
+++ /trunk/src/VBox/Storage/VD.cpp	(revision 43739)
@@ -6854,5 +6854,10 @@
         fLockWrite = true;
 
-        /* Update parent UUID so that image chain is consistent. */
+        /* Update parent UUID so that image chain is consistent.
+         * The two attempts work around the problem that some backends
+         * (e.g. iSCSI) do not support UUIDs, so we exploit the fact that
+         * so far there can only be one such image in the chain. */
+        /** @todo needs a better long-term solution, passing the UUID
+         * knowledge from the caller or some such */
         RTUUID Uuid;
         PVDIMAGE pImageChild = NULL;
@@ -6861,6 +6866,13 @@
             if (pImageFrom->pPrev)
             {
+                /* plan A: ask the parent itself for its UUID */
                 rc = pImageFrom->pPrev->Backend->pfnGetUuid(pImageFrom->pPrev->pBackendData,
                                                             &Uuid);
+                if (RT_FAILURE(rc))
+                {
+                    /* plan B: ask the child of the parent for parent UUID */
+                    rc = pImageFrom->Backend->pfnGetParentUuid(pImageFrom->pBackendData,
+                                                               &Uuid);
+                }
                 AssertRC(rc);
             }
@@ -6876,6 +6888,13 @@
             if (pImageFrom->pNext)
             {
+                /* plan A: ask the parent itself for its UUID */
                 rc = pImageTo->Backend->pfnGetUuid(pImageTo->pBackendData,
                                                    &Uuid);
+                if (RT_FAILURE(rc))
+                {
+                    /* plan B: ask the child of the parent for parent UUID */
+                    rc = pImageTo->pNext->Backend->pfnGetParentUuid(pImageTo->pNext->pBackendData,
+                                                                    &Uuid);
+                }
                 AssertRC(rc);
 
