diff --git a/image_creator/dialog_wizard.py b/image_creator/dialog_wizard.py
index a552dde3bcff3e85df0db1817cd82dba5474d8d7..1adb75c42ffb9999c27ca5af551b6d1729ef9923 100644
--- a/image_creator/dialog_wizard.py
+++ b/image_creator/dialog_wizard.py
@@ -127,8 +127,8 @@ class WizardPage(object):
         if 'extra' in kargs:
             self.dargs['extra_button'] = 1
 
-        if 'extra_label' in kargs:
-            self.dargs['extra_label'] = kargs['extra_label']
+        self.extra_label = kargs['extra_label'] if 'extra_label' in kargs \
+            else lambda: "extra"
 
     def __str__(self):
         """Prints the answer"""
@@ -147,8 +147,10 @@ class WizardInputPage(WizardPage):
 
     def show(self, dialog, title):
         """Display this wizard page"""
-        (code, answer) = dialog.inputbox(self.text, init=self.default,
-                                         title=title, **self.dargs)
+        (code, answer) = dialog.inputbox(self.text(), init=self.default,
+                                         title=title,
+                                         extra_label=self.extra_label(),
+                                         **self.dargs)
 
         if code in (dialog.DIALOG_CANCEL, dialog.DIALOG_ESC):
             return self.PREV
@@ -173,9 +175,10 @@ class WizardInfoPage(WizardPage):
     def show(self, dialog, title):
         """Display this wizard page"""
 
-        text = "%s\n\n%s" % (self.text, self.info())
+        text = "%s\n\n%s" % (self.text(), self.info())
 
-        ret = dialog.yesno(text, title=title, **self.dargs)
+        ret = dialog.yesno(text, title=title, extra_label=self.extra_label(),
+                           **self.dargs)
 
         if ret in (dialog.DIALOG_CANCEL, dialog.DIALOG_ESC):
             return self.PREV
@@ -202,8 +205,9 @@ class WizardFormPage(WizardPage):
         form_height = field_lenght if field_lenght < PAGE_HEIGHT - 4 \
             else PAGE_HEIGHT - 4
 
-        (code, output) = dialog.form(self.text, form_height=form_height,
+        (code, output) = dialog.form(self.text(), form_height=form_height,
                                      fields=self.fields(), title=title,
+                                     extra_label=self.extra_label(),
                                      default_item=self.default, **self.dargs)
 
         if code in (dialog.DIALOG_CANCEL, dialog.DIALOG_ESC):
@@ -240,7 +244,8 @@ class WizardRadioListPage(WizardPageWthChoices):
             default = 1 if choice[0] == self.default else 0
             choices.append((choice[0], choice[1], default))
 
-        (code, answer) = dialog.radiolist(self.text, choices=choices,
+        (code, answer) = dialog.radiolist(self.text(), choices=choices,
+                                          extra_label=self.extra_label(),
                                           title=title, **self.dargs)
 
         if code in (dialog.DIALOG_CANCEL, dialog.DIALOG_ESC):
@@ -269,7 +274,8 @@ class WizardMenuPage(WizardPageWthChoices):
 
         default_item = self.default if self.default else choices[0][0]
 
-        (code, choice) = dialog.menu(self.text, title=title, choices=choices,
+        (code, choice) = dialog.menu(self.text(), title=title, choices=choices,
+                                     extra_label=self.extra_label(),
                                      default_item=default_item, **self.dargs)
 
         if code in (dialog.DIALOG_CANCEL, dialog.DIALOG_ESC):
@@ -321,18 +327,21 @@ def start_wizard(session):
         return cloud
 
     cloud = WizardMenuPage(
-        "Cloud",
+        "Cloud", lambda:
         "Please select a cloud account or press <Add> to add a new one:",
-        cloud_choices, extra_label="Add", extra=lambda: add_cloud(session),
-        title="Clouds", validate=cloud_validate, fallback=no_clouds)
+        cloud_choices, extra_label=lambda: "Add",
+        extra=lambda: add_cloud(session), title="Clouds",
+        validate=cloud_validate, fallback=no_clouds)
 
     # Create Image Name Wizard Page
-    name = WizardInputPage("ImageName", "Please provide a name for the image:",
+    name = WizardInputPage("ImageName", lambda:
+                           "Please provide a name for the image:",
                            default=ostype if distro == "unknown" else distro)
 
     # Create Image Description Wizard Page
     descr = WizardInputPage(
-        "ImageDescription", "Please provide a description for the image:",
+        "ImageDescription", lambda:
+        "Please provide a description for the image:",
         default=metadata['DESCRIPTION'] if 'DESCRIPTION' in metadata else '')
 
     # Create VirtIO Installation Page
@@ -346,8 +355,8 @@ def start_wizard(session):
 
         virtio = image.os.sysprep_params['virtio'].value
         if virtio:
-            ret += "\nNew Block Device Driver:   %(netkvm)s\n" \
-                   "New Network Device Driver: %(viostor)s\n" % \
+            ret += "\nBlock Device Driver to be installed:   %(netkvm)s\n" \
+                   "Network Device Driver to be installed: %(viostor)s\n" % \
                    virtio_versions(image.os.compute_virtio_state(virtio))
         return ret
 
@@ -378,12 +387,30 @@ def start_wizard(session):
 
         return drv_dir
 
-    title = "Please select a directory that hosts VirtIO drivers."
+    def virtio_text():
+        if not session['image'].os.sysprep_params['virtio'].value:
+            return "Press <New> to update the image's VirtIO drivers."
+        else:
+            return "Press <Revert> to revert to the old state."
+
+    def virtio_extra():
+        if not session['image'].os.sysprep_params['virtio'].value:
+            title = "Please select a directory that hosts VirtIO drivers."
+            update_sysprep_param(session, 'virtio', title=title)
+        else:
+            session['image'].os.sysprep_params['virtio'].value = ""
+
+    def virtio_extra_label():
+        if not session['image'].os.sysprep_params['virtio'].value:
+            return "New"
+        else:
+            return "Revert"
+
     virtio = WizardInfoPage(
-        "virtio", "Press <New> to install new VirtIO drivers.",
-        display_installed_drivers, title="VirtIO Drivers", extra_label='New',
-        extra=lambda: update_sysprep_param(session, 'virtio',title=title),
-        validate=validate_virtio, print_name="VirtIO Drivers Path")
+        "virtio", virtio_text, display_installed_drivers,
+        title="VirtIO Drivers", extra_label=virtio_extra_label,
+        extra=virtio_extra, validate=validate_virtio,
+        print_name="VirtIO Drivers Path")
 
     # Create Image Registration Wizard Page
     def registration_choices():
@@ -391,7 +418,7 @@ def start_wizard(session):
         return [("Private", "Image is accessible only by this user"),
                 ("Public", "Everyone can create VMs from this image")]
 
-    registration = WizardRadioListPage("RegistrationType",
+    registration = WizardRadioListPage("RegistrationType", lambda:
                                        "Please provide a registration type:",
                                        registration_choices, default="Private")