diff --git a/cobbler/field_info.py b/cobbler/field_info.py
index e18a5b3..f3d70c6 100644
--- a/cobbler/field_info.py
+++ b/cobbler/field_info.py
@@ -58,6 +58,7 @@ USES_CHECKBOX = [
    "*netboot_enabled",
    "netboot_enabled",
    "*static"
+   "ipv6_autoconf",
 ]
 
 # select killed the radio button
@@ -99,7 +100,13 @@ CSS_MAPPINGS = {
    "broadcast"       : "netedit", # ..
    "reserved"        : "netedit", # ..
    "*mac_address"    : "netedit",
+   "*mtu"            : "netedit",
    "*ip_address"     : "netedit",
+   "*ipv6_address"   : "netedit",
+   "*ipv6_secondaries"    : "netedit",
+   "*ipv6_mtu"            : "netedit",
+   "*ipv6_static_routes"  : "netedit",
+   "*ipv6_defaultgw"      : "netedit",
    "*dhcp_tag"       : "netedit",
    "*static"         : "netedit",
    "*bonding"        : "netedit",
@@ -110,6 +117,8 @@ CSS_MAPPINGS = {
    "*subnet"         : "netedit",
    "hostname"        : "netedit",
    "gateway"         : "netedit",
+   "ipv6_defaultdev"      : "netedit",
+   "ipv6_autoconf"        : "netedit",
    "name_servers"         : "netedit",
    "name_servers_search"  : "netedit"
 }
diff --git a/cobbler/item_system.py b/cobbler/item_system.py
index f978759..674b1ff 100644
--- a/cobbler/item_system.py
+++ b/cobbler/item_system.py
@@ -62,6 +62,8 @@ FIELDS = [
   ["power_id","",0,"Power ID",True,"Usually a plug number or blade name, if power type requires it",0],
   ["hostname","",0,"Hostname",True,"",0],
   ["gateway","",0,"Gateway",True,"",0],
+  ["ipv6_autoconf",False,0,"IPv6 Autoconfiguration",True,"Enable device-based autoconfiguraton?",0],
+  ["ipv6_defaultdev","",0,"IPv6 Default Device",True,"",0],
   ["name_servers",[],0,"Name Servers",True,"space delimited",0],
   ["name_servers_search",[],0,"Name Servers Search Path",True,"space delimited",0],
   ["redhat_management_key","<<inherit>>",0,"Red Hat Management Key",True,"Registration key for RHN, Satellite, or Spacewalk",0],
@@ -69,6 +71,7 @@ FIELDS = [
   ["network_widget_a","",0,"Add Interface",True,"",0], # not a real field, a marker for the web app
   ["network_widget_b","",0,"Edit Interface",True,"",0], # not a real field, a marker for the web app
   ["*mac_address","",0,"MAC Address",True,"",0],
+  ["*mtu","",0,"Max Transmission Unit",True,"",0],
   ["*ip_address","",0,"IP Address",True,"",0],
   ["*bonding","na",0,"Bonding Mode",True,"",["na","master","slave"]],
   ["*bonding_master","",0,"Bonding Master",True,"",0],
@@ -79,6 +82,11 @@ FIELDS = [
   ["*dns_name","",0,"DNS Name",True,"",0],
   ["*static_routes",[],0,"Static Routes",True,"",0],
   ["*virt_bridge","",0,"Virt Bridge",True,"",0],
+  ["*ipv6_address","",0,"IPv6 Address",True,"",0],
+  ["*ipv6_secondaries",[],0,"IPv6 Secondaries",True,"space delimited",0],
+  ["*ipv6_mtu","",0,"IPv6 Max Transmission Unit",True,"",0],
+  ["*ipv6_static_routes",[],0,"IPv6 Static Routes",True,"",0],
+  ["*ipv6_defaultgw","",0,"IPv6 Default Gateway",True,"",0],
 ]
 
 class System(item.Item):
@@ -116,6 +124,7 @@ class System(item.Item):
         if not self.interfaces.has_key(name):
             self.interfaces[name] = {
                 "mac_address"    : "",
+                "mtu"            : "",
                 "ip_address"     : "",
                 "dhcp_tag"       : "",
                 "subnet"         : "",
@@ -126,6 +135,11 @@ class System(item.Item):
                 "bonding_opts"   : "",
                 "dns_name"       : "",
                 "static_routes"  : [],
+                "ipv6_address"   : "",
+                "ipv6_secondaries"  : [],
+                "ipv6_mtu"       : "",
+                "ipv6_static_routes"  : [],
+                "ipv6_defaultgw" : "",
             }
 
         return self.interfaces[name]
@@ -335,6 +349,63 @@ class System(item.Item):
         intf["bonding_opts"] = bonding_opts
         return True
 
+    def set_ipv6_autoconf(self,truthiness):
+        self.ipv6_autoconf = utils.input_boolean(truthiness)
+        return True
+
+    def set_ipv6_defaultdev(self,interface_name):
+        if interface_name is None:
+           interface_name = ""
+        self.ipv6_defaultdev = interface_name
+        return True
+
+    def set_ipv6_address(self,address,interface):
+        """
+        Assign a IP or hostname in DHCP when this MAC boots.
+        Only works if manage_dhcp is set in /etc/cobbler/settings
+        """
+        intf = self.__get_interface(interface)
+        if address == "" or utils.is_ip(address):
+           intf["ipv6_address"] = address.strip()
+           return True
+        raise CX(_("invalid format for IPv6 IP address (%s)") % address)
+
+    def set_ipv6_secondaries(self,addresses,interface):
+        intf = self.__get_interface(interface)
+        data = utils.input_string_or_list(addresses)
+        secondaries = []
+        for address in data:
+           if address == "" or utils.is_ip(address):
+               secondaries.append(address)
+           else:
+               raise CX(_("invalid format for IPv6 IP address (%s)") % address)
+
+        intf["ipv6_secondaries"] = secondaries
+        return True
+
+    def set_ipv6_defaultgw(self,address,interface):
+        intf = self.__get_interface(interface)
+        if address == "" or utils.is_ip(address):
+           intf["ipv6_defaultgw"] = address.strip()
+           return True
+        raise CX(_("invalid format for IPv6 IP address (%s)") % address)
+
+    def set_ipv6_static_routes(self,routes,interface):
+        intf = self.__get_interface(interface)
+        data = utils.input_string_or_list(routes)
+        intf["ipv6_static_routes"] = data
+        return True
+
+    def set_ipv6_mtu(self,mtu,interface):
+        intf = self.__get_interface(interface)
+        intf["ipv6_mtu"] = mtu
+        return True
+
+    def set_mtu(self,mtu,interface):
+        intf = self.__get_interface(interface)
+        intf["mtu"] = mtu
+        return True
+
     def set_profile(self,profile_name):
         """
         Set the system to use a certain named profile.  The profile
@@ -484,17 +555,24 @@ class System(item.Item):
         for (key,value) in hash.iteritems():
             (field,interface) = key.split("-")
             field = field.replace("_","").replace("-","")
-            if field == "macaddress"    : self.set_mac_address(value, interface)
-            if field == "ipaddress"     : self.set_ip_address(value, interface)
-            if field == "dnsname"       : self.set_dns_name(value, interface)
-            if field == "static"        : self.set_static(value, interface)
-            if field == "dhcptag"       : self.set_dhcp_tag(value, interface)
-            if field == "subnet"        : self.set_subnet(value, interface)
-            if field == "virtbridge"    : self.set_virt_bridge(value, interface)
-            if field == "bonding"       : self.set_bonding(value, interface)
-            if field == "bondingmaster" : self.set_bonding_master(value, interface)
-            if field == "bondingopts"   : self.set_bonding_opts(value, interface)
-            if field == "staticroutes"  : self.set_static_routes(value, interface)
+            if field == "macaddress"          : self.set_mac_address(value, interface)
+            if field == "mtu"                 : self.set_mtu(value, interface)
+            if field == "ipaddress"           : self.set_ip_address(value, interface)
+            if field == "dnsname"             : self.set_dns_name(value, interface)
+            if field == "static"              : self.set_static(value, interface)
+            if field == "dhcptag"             : self.set_dhcp_tag(value, interface)
+            if field == "subnet"              : self.set_subnet(value, interface)
+            if field == "virtbridge"		  : self.set_virt_bridge(value, interface)
+            if field == "bonding"             : self.set_bonding(value, interface)
+            if field == "bondingmaster"       : self.set_bonding_master(value, interface)
+            if field == "bondingopts"         : self.set_bonding_opts(value, interface)
+            if field == "staticroutes"        : self.set_static_routes(value, interface)
+            if field == "ipv6address"         : self.set_ipv6_address(value, interface)
+            if field == "ipv6secondaries"     : self.set_ipv6_secondaries(value, interface)
+            if field == "ipv6mtu"             : self.set_ipv6_mtu(value, interface)
+            if field == "ipv6staticroutes"    : self.set_ipv6_static_routes(value, interface)
+            if field == "ipv6defaultgw"       : self.set_ipv6_defaultgw(value, interface)
+
         return True
 
     def check_if_valid(self):
diff --git a/snippets/network_config b/snippets/network_config
diff --git a/web/cobbler_web/templates/generic_list.tmpl b/web/cobbler_web/templates/generic_list.tmpl
index 3e35d63..b7e9ac1 100644
--- a/web/cobbler_web/templates/generic_list.tmpl
+++ b/web/cobbler_web/templates/generic_list.tmpl
@@ -153,7 +153,7 @@ function action_multi(otype, action, param) {
    <br/>
    <br/>
    <input type="button" onClick="javascript:action_multi('system','power','on')" value="Power On"/>
-   <input type="button" onClick="javascript:action_multi('system','power','off')" value="Power On"/>
+   <input type="button" onClick="javascript:action_multi('system','power','off')" value="Power Off"/>
    <input type="button" onClick="javascript:action_multi('system','power','reboot')" value="Reboot"/>
    <input type="button" onClick="javascript:action_multi('system','profile','')" value="Change Profile"/>
    <input type="button" onClick="javascript:action_multi('system','netboot','enable')" value="Enable Netboot"/>
