Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxProblemReporter.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxProblemReporter.cpp	(revision 37900)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxProblemReporter.cpp	(revision 37901)
@@ -742,4 +742,18 @@
 }
 
+void VBoxProblemReporter::warnAboutStateChange(QWidget *pParent)
+{
+    if (isAlreadyShown("warnAboutStateChange"))
+        return;
+    setShownStatus("warnAboutStateChange");
+
+    message(pParent ? pParent : mainWindowShown(), Warning,
+            tr("The state of the virtual machine you currently edit has changed. "
+               "Only settings which are editable at runtime are saved when you press OK. "
+               "All changes to other settings will be lost."));
+
+    clearShownStatus("warnAboutStateChange");
+}
+
 void VBoxProblemReporter::cannotStartMachine (const CConsole &console)
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxProblemReporter.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxProblemReporter.h	(revision 37900)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxProblemReporter.h	(revision 37901)
@@ -203,4 +203,5 @@
 
     bool confirmedSettingsReloading(QWidget *pParent);
+    void warnAboutStateChange(QWidget *pParent);
 
     void cannotStartMachine (const CConsole &console);
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 37900)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 37901)
@@ -1015,6 +1015,13 @@
         return;
 
+    /* Should we show a warning about leaving 'offline' state? */
+    bool fShouldWe = dialogType() == SettingsDialogType_Offline;
+
     /* Update current dialog type: */
     setDialogType(newDialogType);
+
+    /* Show a warning about leaving 'offline' state if we should: */
+    if (isSettingsChanged() && fShouldWe)
+        vboxProblem().warnAboutStateChange(this);
 }
 
