Index: /trunk/src/VBox/Frontends/VirtualBox/nls/VirtualBox_en.ts
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/nls/VirtualBox_en.ts	(revision 33701)
+++ /trunk/src/VBox/Frontends/VirtualBox/nls/VirtualBox_en.ts	(revision 33702)
@@ -5,5 +5,5 @@
     <name>VBoxGlobal</name>
     <message numerus="yes">
-        <location filename="../src/globals/VBoxGlobal.h" line="377"/>
+        <location filename="../src/globals/VBoxGlobal.h" line="201"/>
         <source>%n year(s)</source>
         <translation>
@@ -13,5 +13,5 @@
     </message>
     <message numerus="yes">
-        <location filename="../src/globals/VBoxGlobal.h" line="382"/>
+        <location filename="../src/globals/VBoxGlobal.h" line="206"/>
         <source>%n month(s)</source>
         <translation>
@@ -21,5 +21,5 @@
     </message>
     <message numerus="yes">
-        <location filename="../src/globals/VBoxGlobal.h" line="387"/>
+        <location filename="../src/globals/VBoxGlobal.h" line="211"/>
         <source>%n day(s)</source>
         <translation>
@@ -29,5 +29,5 @@
     </message>
     <message numerus="yes">
-        <location filename="../src/globals/VBoxGlobal.h" line="392"/>
+        <location filename="../src/globals/VBoxGlobal.h" line="216"/>
         <source>%n hour(s)</source>
         <translation>
@@ -37,5 +37,5 @@
     </message>
     <message numerus="yes">
-        <location filename="../src/globals/VBoxGlobal.h" line="402"/>
+        <location filename="../src/globals/VBoxGlobal.h" line="226"/>
         <source>%n second(s)</source>
         <translation>
@@ -45,5 +45,5 @@
     </message>
     <message numerus="yes">
-        <location filename="../src/globals/VBoxGlobal.h" line="397"/>
+        <location filename="../src/globals/VBoxGlobal.h" line="221"/>
         <source>%n minute(s)</source>
         <translation>
@@ -54,7 +54,18 @@
 </context>
 <context>
+    <name>VBoxProblemReporter</name>
+    <message numerus="yes">
+        <location filename="../src/globals/VBoxProblemReporter.cpp" line="2340"/>
+        <source>&lt;p&gt;The virtual machine(s) &lt;b&gt;%1&lt;/b&gt; are currently in a saved state.&lt;/p&gt;&lt;p&gt;If you continue the runtime state of the exported machine(s) will be discarded. Note that the existing machine(s) are not changed.&lt;/p&gt;</source>
+        <translation>
+            <numerusform>&lt;p&gt;The virtual machine &lt;b&gt;%1&lt;/b&gt; is currently in a saved state.&lt;/p&gt;&lt;p&gt;If you continue the runtime state of the exported machine will be discarded. Note that the existing machine is not changed.&lt;/p&gt;</numerusform>
+            <numerusform>&lt;p&gt;The virtual machines &lt;b&gt;%1&lt;/b&gt; are currently in a saved state.&lt;/p&gt;&lt;p&gt;If you continue the runtime state of the exported machines will be discarded. Note that the existing machines are not changed.&lt;/p&gt;</numerusform>
+        </translation>
+    </message>
+</context>
+<context>
     <name>VBoxTakeSnapshotDlg</name>
     <message numerus="yes">
-        <location filename="../src/VBoxTakeSnapshotDlg.cpp" line="87"/>
+        <location filename="../src/VBoxTakeSnapshotDlg.cpp" line="74"/>
         <source>Warning: You are taking a snapshot of a running machine which has %n immutable image(s) attached to it. As long as you are working from this snapshot the immutable image(s) will not be reset to avoid loss of data.</source>
         <translation>
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 33701)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 33702)
@@ -3399,4 +3399,23 @@
             .arg (tr ("PB", "size suffix PBytes=1024 TBytes"));
     return regexp;
+}
+
+/* static */
+QString VBoxGlobal::toHumanReadableList(const QStringList &list)
+{
+    QString strList;
+    if (list.size() == 1)
+        strList = list.at(0);
+    else if (list.size() > 1)
+    {
+        for (int i = 0; i < list.size() - 1; ++i)
+        {
+            strList += list.at(i);
+            if (i < list.size() - 2)
+                strList += + ", ";
+        }
+        strList += " " + tr("and") + " " + list.at(list.size() - 1);
+    }else
+    return strList;
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 33701)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.h	(revision 33702)
@@ -617,4 +617,6 @@
     static QString sizeRegexp();
 
+    static QString toHumanReadableList(const QStringList &list);
+
     static quint64 parseSize (const QString &);
     static QString formatSize (quint64 aSize, uint aDecimal = 2,
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxProblemReporter.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxProblemReporter.cpp	(revision 33701)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxProblemReporter.cpp	(revision 33702)
@@ -2335,4 +2335,16 @@
 }
 
+bool VBoxProblemReporter::confirmExportMachinesInSaveState(const QStringList &machineNames, QWidget * /* aParent  = NULL */) const
+{
+    return messageOkCancel(mainWindowShown(), Warning,
+        tr("<p>The virtual machine(s) <b>%1</b> are currently in a saved state.</p>"
+           "<p>If you "
+           "continue the runtime state of the exported machine(s) will be "
+           "discarded. Note that the existing machine(s) are not "
+           "changed.</p>", "", machineNames.size()).arg(VBoxGlobal::toHumanReadableList(machineNames)),
+        0 /* aAutoConfirmId */,
+        tr("Continue"), tr("Cancel"));
+}
+
 void VBoxProblemReporter::cannotExportAppliance (CAppliance *aAppliance, QWidget *aParent /* = NULL */) const
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxProblemReporter.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxProblemReporter.h	(revision 33701)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxProblemReporter.h	(revision 33702)
@@ -368,4 +368,5 @@
     void cannotRemoveFiles (const CProgress &aProgress, QWidget *aParent = NULL) const;
 
+    bool confirmExportMachinesInSaveState(const QStringList &machineNames, QWidget *aParent = NULL) const;
     void cannotExportAppliance (CAppliance *aAppliance, QWidget *aParent = NULL) const;
     void cannotExportAppliance (const CMachine &aMachine, CAppliance *aAppliance, QWidget *aParent = NULL) const;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIExportApplianceWzd.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIExportApplianceWzd.cpp	(revision 33701)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIExportApplianceWzd.cpp	(revision 33702)
@@ -30,6 +30,8 @@
 public:
 
-    VMListWidgetItems(QPixmap &pixIcon, QString &strText, QListWidget *pParent)
+    VMListWidgetItems(QPixmap &pixIcon, QString &strText, QString strUuid, bool fInSaveState, QListWidget *pParent)
         : QListWidgetItem(pixIcon, strText, pParent)
+        , m_strUuid(strUuid)
+        , m_fInSaveState(fInSaveState)
     {
     }
@@ -40,4 +42,11 @@
         return text().toLower() < other.text().toLower();
     }
+
+    QString uuid() { return m_strUuid; }
+    bool isInSaveState() { return m_fInSaveState; }
+
+private:
+    QString m_strUuid;
+    bool m_fInSaveState;
 };
 
@@ -152,4 +161,21 @@
 }
 
+bool UIExportApplianceWzdPage1::validatePage()
+{
+    /* Ask user about disk-less machine */
+    QStringList savedMachines;
+    QList<QListWidgetItem*> pItems = m_pVMSelector->selectedItems();
+    for (int i=0; i < pItems.size(); ++i)
+    {
+        if (static_cast<VMListWidgetItems*>(pItems.at(i))->isInSaveState())
+            savedMachines << pItems.at(i)->text();
+    }
+
+    if (!savedMachines.isEmpty())
+        return vboxProblem().confirmExportMachinesInSaveState(savedMachines, this);
+
+    return true;
+}
+
 int UIExportApplianceWzdPage1::nextId() const
 {
@@ -167,5 +193,5 @@
     {
         m_MachineNames << item->text();
-        m_MachineIDs << item->data(Qt::UserRole).toString();
+        m_MachineIDs << static_cast<VMListWidgetItems*>(item)->uuid();
     }
     /* Revalidate page */
@@ -181,5 +207,6 @@
         QString strName;
         QString strUuid;
-        bool bEnabled;
+        bool fInSaveState = false;
+        bool fEnabled = false;
         if (m.GetAccessible())
         {
@@ -187,5 +214,6 @@
             strName = m.GetName();
             strUuid = m.GetId();
-            bEnabled = m.GetSessionState() == KSessionState_Unlocked;
+            fEnabled = m.GetSessionState() == KSessionState_Unlocked;
+            fInSaveState = m.GetState() == KMachineState_Saved;
         }
         else
@@ -193,11 +221,9 @@
             QString settingsFile = m.GetSettingsFilePath();
             QFileInfo fi(settingsFile);
-            strName = fi.completeSuffix().toLower() == "xml" ? fi.completeBaseName() : fi.fileName();
+            strName = (fi.completeSuffix().toLower() == "xml" || fi.completeSuffix().toLower() == "vbox") ? fi.completeBaseName() : fi.fileName();
             pixIcon = QPixmap(":/os_other.png").scaled(16, 16, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
-            bEnabled = false;
-        }
-        QListWidgetItem *item = new VMListWidgetItems(pixIcon, strName, m_pVMSelector);
-        item->setData(Qt::UserRole, strUuid);
-        if (!bEnabled)
+        }
+        QListWidgetItem *item = new VMListWidgetItems(pixIcon, strName, strUuid, fInSaveState, m_pVMSelector);
+        if (!fEnabled)
             item->setFlags(0);
         m_pVMSelector->addItem(item);
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIExportApplianceWzd.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIExportApplianceWzd.h	(revision 33701)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIExportApplianceWzd.h	(revision 33702)
@@ -77,4 +77,5 @@
 
     bool isComplete() const;
+    bool validatePage();
 
     int nextId() const;
