Index: /trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 37830)
+++ /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 37831)
@@ -9893,5 +9893,5 @@
   <interface
     name="IMedium" extends="$unknown"
-    uuid="f55ce3ec-b856-4d07-ae33-826072b332c3"
+    uuid="53f9cc0c-e0fd-40a5-a404-a7a5272082cd"
     wsmap="managed"
     >
@@ -10223,4 +10223,14 @@
         <link to="MediumType_Normal"/>, except for DVD and floppy media,
         which have a type of <link to="MediumType_Writethrough"/>.
+      </desc>
+    </attribute>
+
+    <attribute name="allowedTypes" type="MediumType" safearray="yes" readonly="yes">
+      <desc>
+        Returns which medium types can selected for this medium.
+
+        <result name="E_NOTIMPL">
+          This attribute is not implemented at the moment.
+        </result>
       </desc>
     </attribute>
Index: /trunk/src/VBox/Main/include/MediumImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/MediumImpl.h	(revision 37830)
+++ /trunk/src/VBox/Main/include/MediumImpl.h	(revision 37831)
@@ -116,4 +116,5 @@
     STDMETHOD(COMGETTER(Type))(MediumType_T *aType);
     STDMETHOD(COMSETTER(Type))(MediumType_T aType);
+    STDMETHOD(COMGETTER(AllowedTypes))(ComSafeArrayOut(MediumType_T, aAllowedTypes));
     STDMETHOD(COMGETTER(Parent))(IMedium **aParent);
     STDMETHOD(COMGETTER(Children))(ComSafeArrayOut(IMedium *, aChildren));
Index: /trunk/src/VBox/Main/src-server/MediumImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/MediumImpl.cpp	(revision 37830)
+++ /trunk/src/VBox/Main/src-server/MediumImpl.cpp	(revision 37831)
@@ -1768,4 +1768,16 @@
 
     return rc;
+}
+
+STDMETHODIMP Medium::COMGETTER(AllowedTypes)(ComSafeArrayOut(MediumType_T, aAllowedTypes))
+{
+    CheckComArgOutSafeArrayPointerValid(aAllowedTypes);
+
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
+
+    ReturnComNotImplemented();
 }
 
