diff --git a/i18n/english/luasrc/i18n/admin-core.en.lua b/i18n/english/luasrc/i18n/admin-core.en.lua
index efbe12456f..b179ec808e 100644
--- a/i18n/english/luasrc/i18n/admin-core.en.lua
+++ b/i18n/english/luasrc/i18n/admin-core.en.lua
@@ -97,6 +97,7 @@ a_s_flash_upgrade1 = "Replaces the installed firmware with a new one. The firmwa
a_s_reboot1 = "Reboots the operating system of your device"
a_s_reboot_do = "Perform reboot"
a_s_reboot_running = "Please wait: Device rebooting..."
+a_s_reboot_u = "Warning: There are unsaved changes that will be lost while rebooting!"
a_srv_http = "HTTP-Server"
a_srv_ssh = "SSH-Server"
diff --git a/i18n/english/luasrc/i18n/default.en.lua b/i18n/english/luasrc/i18n/default.en.lua
index df135a66d8..eb6ce8c4d1 100644
--- a/i18n/english/luasrc/i18n/default.en.lua
+++ b/i18n/english/luasrc/i18n/default.en.lua
@@ -87,8 +87,10 @@ target = "Target"
timezone = "Timezone"
type = "Type"
-username = "Username"
unknownerror = "Unknown Error"
+unsavedchanges = "Unsaved Changes"
+username = "Username"
+
version = "Version"
diff --git a/i18n/german/luasrc/i18n/admin-core.de.lua b/i18n/german/luasrc/i18n/admin-core.de.lua
index 2c7f0fc9c7..c3cb041ebe 100644
--- a/i18n/german/luasrc/i18n/admin-core.de.lua
+++ b/i18n/german/luasrc/i18n/admin-core.de.lua
@@ -93,6 +93,7 @@ a_s_packages_upgrade = [[Installierte Pakete aktualisieren]]
a_s_reboot1 = [[Startet das Betriebssystem des Routers neu.]]
a_s_reboot_do = [[Neustart durchführen]]
a_s_reboot_running = [[Bitte warten: Neustart wird durchgeführt...]]
+a_s_reboot_u = "Warnung: Es gibt ungespeicherte Änderungen, die beim Neustart verloren gehen!"
a_s_sshkeys = [[SSH-Schlüssel]]
a_s_sshkeys1 = [[Hier können öffentliche SSH-Schlüssel (einer pro Zeile)
zur Authentifizierung abgelegt werden.]]
diff --git a/i18n/german/luasrc/i18n/default.de.lua b/i18n/german/luasrc/i18n/default.de.lua
index 4e0a36f66c..c88e941343 100644
--- a/i18n/german/luasrc/i18n/default.de.lua
+++ b/i18n/german/luasrc/i18n/default.de.lua
@@ -88,8 +88,9 @@ target = "Ziel"
timezone = "Zeitzone"
type = "Typ"
-username = "Benutzername"
unknownerror = "Unbekannter Fehler"
+unsavedchanges = "Ungespeicherte Änderungen"
+username = "Benutzername"
version = "Version"
diff --git a/modules/admin-full/luasrc/controller/admin/index.lua b/modules/admin-full/luasrc/controller/admin/index.lua
index 430c5b82c5..9583f4f913 100644
--- a/modules/admin-full/luasrc/controller/admin/index.lua
+++ b/modules/admin-full/luasrc/controller/admin/index.lua
@@ -41,7 +41,7 @@ function index()
page.target = cbi("admin_index/luci")
page.title = i18n("a_i_ui", "Oberfläche")
- entry({"admin", "logout"}, call("action_logout"), i18n("logout"))
+ entry({"admin", "index", "logout"}, call("action_logout"), i18n("logout"))
end
function action_logout()
diff --git a/modules/admin-full/luasrc/view/admin_system/reboot.htm b/modules/admin-full/luasrc/view/admin_system/reboot.htm
index 3ddfa5880e..600da36fcb 100644
--- a/modules/admin-full/luasrc/view/admin_system/reboot.htm
+++ b/modules/admin-full/luasrc/view/admin_system/reboot.htm
@@ -16,10 +16,18 @@ $Id$
<%:system%>
<%:reboot%>
<%:a_s_reboot1%>
-<% if not reboot then %>
+<%-
+local c = require("luci.model.uci").changes()
+if c and next(c) then
+-%>
+ <%:a_s_reboot_u%>
+<%-
+end
+if not reboot then
+-%>
<%:a_s_reboot_do%>
-<% else %>
+<%- else -%>
<%:a_s_reboot_running%>
-<% end %>
+<%- end -%>
<%+footer%>
\ No newline at end of file
diff --git a/modules/admin-mini/luasrc/controller/mini/system.lua b/modules/admin-mini/luasrc/controller/mini/system.lua
new file mode 100644
index 0000000000..7b13e20c62
--- /dev/null
+++ b/modules/admin-mini/luasrc/controller/mini/system.lua
@@ -0,0 +1,32 @@
+--[[
+LuCI - Lua Configuration Interface
+
+Copyright 2008 Steven Barth
+Copyright 2008 Jo-Philipp Wich
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+]]--
+
+module("luci.controller.mini.system", package.seeall)
+
+function index()
+ luci.i18n.loadc("admin-core")
+ local i18n = luci.i18n.translate
+
+ entry({"mini", "system"}, call("action_reboot"), i18n("system"))
+ entry({"mini", "system", "reboot"}, call("action_reboot"), i18n("reboot"), 10)
+end
+
+function action_reboot()
+ local reboot = luci.http.formvalue("reboot")
+ luci.template.render("mini/reboot", {reboot=reboot})
+ if reboot then
+ luci.sys.reboot()
+ end
+end
\ No newline at end of file
diff --git a/modules/admin-mini/luasrc/view/mini/reboot.htm b/modules/admin-mini/luasrc/view/mini/reboot.htm
new file mode 100644
index 0000000000..600da36fcb
--- /dev/null
+++ b/modules/admin-mini/luasrc/view/mini/reboot.htm
@@ -0,0 +1,33 @@
+<%#
+LuCI - Lua Configuration Interface
+Copyright 2008 Steven Barth
+Copyright 2008 Jo-Philipp Wich
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+-%>
+<%+header%>
+<%:system%>
+<%:reboot%>
+<%:a_s_reboot1%>
+<%-
+local c = require("luci.model.uci").changes()
+if c and next(c) then
+-%>
+ <%:a_s_reboot_u%>
+<%-
+end
+if not reboot then
+-%>
+<%:a_s_reboot_do%>
+<%- else -%>
+<%:a_s_reboot_running%>
+
+<%- end -%>
+<%+footer%>
\ No newline at end of file
diff --git a/modules/admin-mini/luasrc/view/mini/uci_changes.htm b/modules/admin-mini/luasrc/view/mini/uci_changes.htm
index 09d8d3e7ee..ae601aa1f6 100644
--- a/modules/admin-mini/luasrc/view/mini/uci_changes.htm
+++ b/modules/admin-mini/luasrc/view/mini/uci_changes.htm
@@ -17,10 +17,10 @@ $Id$
<%:changes%>
<%=changes%>
-
-
<%+footer%>
diff --git a/themes/openwrt.org/htdocs/luci-static/openwrt.org/cascade.css b/themes/openwrt.org/htdocs/luci-static/openwrt.org/cascade.css
index 2ca2cb4f64..0febd3b6e3 100644
--- a/themes/openwrt.org/htdocs/luci-static/openwrt.org/cascade.css
+++ b/themes/openwrt.org/htdocs/luci-static/openwrt.org/cascade.css
@@ -24,6 +24,11 @@ div#content ul {
margin-left: 2em;
}
+.warning {
+ color: red !important;
+ font-weight: bold;
+}
+
.clear {
clear: both;
height: 1px;
diff --git a/themes/openwrt.org/luasrc/view/themes/openwrt.org/header.htm b/themes/openwrt.org/luasrc/view/themes/openwrt.org/header.htm
index c7908c0c5a..df31154c0a 100644
--- a/themes/openwrt.org/luasrc/view/themes/openwrt.org/header.htm
+++ b/themes/openwrt.org/luasrc/view/themes/openwrt.org/header.htm
@@ -91,7 +91,7 @@ end