Index: /trunk/src/VBox/Main/HardDiskImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/HardDiskImpl.cpp	(revision 20098)
+++ /trunk/src/VBox/Main/HardDiskImpl.cpp	(revision 20099)
@@ -490,26 +490,30 @@
     ~ImageChain()
     {
-        List::const_iterator last = end();
-        last--;
-        for (List::const_iterator it = begin(); it != end(); ++ it)
-        {
-            AutoWriteLock alock (*it);
-            if (it == last)
+        /* empty? */
+        if (begin() != end())
+        {
+            List::const_iterator last = end();
+            last--;
+            for (List::const_iterator it = begin(); it != end(); ++ it)
             {
-                Assert (   (*it)->m.state == MediaState_LockedRead
-                        || (*it)->m.state == MediaState_LockedWrite);
-                if ((*it)->m.state == MediaState_LockedRead)
-                    (*it)->UnlockRead (NULL);
-                else if ((*it)->m.state == MediaState_LockedWrite)
-                    (*it)->UnlockWrite (NULL);
+                AutoWriteLock alock (*it);
+                if (it == last)
+                {
+                    Assert (   (*it)->m.state == MediaState_LockedRead
+                            || (*it)->m.state == MediaState_LockedWrite);
+                    if ((*it)->m.state == MediaState_LockedRead)
+                        (*it)->UnlockRead (NULL);
+                    else if ((*it)->m.state == MediaState_LockedWrite)
+                        (*it)->UnlockWrite (NULL);
+                }
+                else
+                {
+                    Assert ((*it)->m.state == MediaState_LockedRead);
+                    if ((*it)->m.state == MediaState_LockedRead)
+                        (*it)->UnlockRead (NULL);
+                }
+
+                (*it)->releaseCaller();
             }
-            else
-            {
-                Assert ((*it)->m.state == MediaState_LockedRead);
-                if ((*it)->m.state == MediaState_LockedRead)
-                    (*it)->UnlockRead (NULL);
-            }
-
-            (*it)->releaseCaller();
         }
     }
