Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIFormEditorWidget.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIFormEditorWidget.cpp	(revision 78210)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIFormEditorWidget.cpp	(revision 78211)
@@ -171,4 +171,7 @@
     void updateValueCells();
 
+    /** Check whether generation value is changed. */
+    bool isGenerationChanged() const;
+
 protected:
 
@@ -191,4 +194,7 @@
     KFormValueType  m_enmValueType;
 
+    /** Holds current generation value. */
+    int  m_iGeneration;
+
     /** Holds the cell instances. */
     QVector<UIFormEditorCell*>  m_cells;
@@ -237,4 +243,7 @@
     /** Return the parent table-view reference. */
     QITableView *parentTable() const;
+
+    /** Updates row generation values. */
+    void updateGeneration();
 
     /** Holds the Form Editor row list. */
@@ -281,4 +290,5 @@
     , m_comValue(comValue)
     , m_enmValueType(KFormValueType_Max)
+    , m_iGeneration(0)
 {
     prepare();
@@ -396,4 +406,7 @@
 void UIFormEditorRow::updateValueCells()
 {
+    m_iGeneration = m_comValue.GetGeneration();
+    /// @todo check for errors
+
     switch (m_enmValueType)
     {
@@ -416,5 +429,5 @@
             CChoiceFormValue comValue(m_comValue);
             const QVector<QString> values = comValue.GetValues();
-            m_cells[UIFormEditorDataType_Value]->setText(values.at(comValue.GetSelectedIndex()));
+            m_cells[UIFormEditorDataType_Value]->setText(values.isEmpty() ? QString() : values.at(comValue.GetSelectedIndex()));
             /// @todo check for errors
             break;
@@ -423,4 +436,11 @@
             break;
     }
+}
+
+bool UIFormEditorRow::isGenerationChanged() const
+{
+    const int iGeneration = m_comValue.GetGeneration();
+    /// @todo check for errors
+    return m_iGeneration != iGeneration;
 }
 
@@ -573,4 +593,5 @@
                         m_dataList[index.row()]->setBool(enmCheckState == Qt::Checked);
                         emit dataChanged(index, index);
+                        updateGeneration();
                         return true;
                     }
@@ -595,8 +616,10 @@
                             m_dataList[index.row()]->setString(value.toString());
                             emit dataChanged(index, index);
+                            updateGeneration();
                             return true;
                         case KFormValueType_Choice:
                             m_dataList[index.row()]->setChoice(value.value<ChoiceData>());
                             emit dataChanged(index, index);
+                            updateGeneration();
                             return true;
                         default:
@@ -701,4 +724,11 @@
 }
 
+void UIFormEditorModel::updateGeneration()
+{
+    foreach (UIFormEditorRow *pRow, m_dataList)
+        if (pRow->isGenerationChanged())
+            pRow->updateValueCells();
+}
+
 
 /*********************************************************************************************************************************
