Index: /trunk/src/VBox/Main/src-server/MachineImplCloneVM.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/MachineImplCloneVM.cpp	(revision 38040)
+++ /trunk/src/VBox/Main/src-server/MachineImplCloneVM.cpp	(revision 38041)
@@ -642,5 +642,6 @@
                     if (pLMedium.isNull())
                         throw E_POINTER;
-                    if (pLMedium->isReadOnly())
+                    ComObjPtr<Medium> pBase = pLMedium->getBase();
+                    if (pBase->isReadOnly())
                     {
                         ComObjPtr<Medium> pDiff;
@@ -799,5 +800,12 @@
             if (mtc.fCreateDiffs)
             {
-                if (pNewParent->isReadOnly())
+                const MEDIUMTASK &mt = mtc.chain.first();
+                ComPtr<IMedium> pMedium = mt.pMedium;
+                IMedium *pTmp = pMedium;
+                ComObjPtr<Medium> pLMedium = static_cast<Medium*>(pTmp);
+                if (pLMedium.isNull())
+                    throw E_POINTER;
+                ComObjPtr<Medium> pBase = pLMedium->getBase();
+                if (pBase->isReadOnly())
                 {
                     ComObjPtr<Medium> pDiff;
