Index: /trunk/grails-app/conf/Config.groovy
===================================================================
--- /trunk/grails-app/conf/Config.groovy	(revision 386)
+++ /trunk/grails-app/conf/Config.groovy	(revision 387)
@@ -280,5 +280,5 @@
         ]
     ],
-    [order:140, controller:'extendedAttributeTypeDetailed', title:'extendedAttribute', action:'list',
+    [order:140, controller:'extendedAttributeTypeDetailed', title:'extendedAttributeType', action:'list',
         subItems: [
             [order:10, controller:'extendedAttributeTypeDetailed', title:'Attribute Type List', action:'list', isVisible: { true }],
Index: /trunk/grails-app/controllers/AssetDetailedController.groovy
===================================================================
--- /trunk/grails-app/controllers/AssetDetailedController.groovy	(revision 386)
+++ /trunk/grails-app/controllers/AssetDetailedController.groovy	(revision 387)
@@ -1,4 +1,5 @@
 import org.codehaus.groovy.grails.plugins.springsecurity.Secured
 import org.codehaus.groovy.grails.commons.ConfigurationHolder
+import org.apache.commons.lang.WordUtils
 
 @Secured(['ROLE_AppAdmin', 'ROLE_Manager', 'ROLE_AssetManager'])
@@ -288,8 +289,13 @@
             assetInstance.properties = params
 
+            use(WordUtils) {
+                assetInstance.name = assetInstance.name.capitalize()
+                assetInstance.description = assetInstance.description.capitalize()
+            }
+
             assetInstance.setAssetSubItemsFromCheckBoxList(params.assetSubItems)
 
             if(!assetInstance.hasErrors() && assetInstance.save(flush: true)) {
-                flash.message = "Asset ${params.id} updated"
+                flash.message = "Asset '${assetInstance.name}' updated"
                 redirect(action:show,id:assetInstance.id)
             }
@@ -335,4 +341,19 @@
     def save = {
         def result = assetService.save(params)
+
+        if(!result.error) {
+            flash.message = g.message(code: "default.create.success", args: ["Asset",  "'${result.assetInstance.name}'"])
+            redirect(action:show, id: result.assetInstance.id)
+            return
+        }
+
+        render(view:'create', model:[assetInstance: result.assetInstance])
+    }
+
+    /**
+    * Copy save action.
+    */
+    def saveCopy = {
+        def result = assetService.saveCopy(params)
 
         if(!result.error) {
@@ -342,19 +363,4 @@
         }
 
-        render(view:'create', model:[assetInstance: result.assetInstance])
-    }
-
-    /**
-    * Copy save action.
-    */
-    def saveCopy = {
-        def result = assetService.saveCopy(params)
-
-        if(!result.error) {
-            flash.message = g.message(code: "default.create.success", args: ["Asset", result.assetInstance.id])
-            redirect(action:show, id: result.assetInstance.id)
-            return
-        }
-
         if(result.error.code == "default.not.found") {
             flash.message = g.message(code: result.error.code, args: ["Asset", params.assetToCopy?.id])
Index: /trunk/grails-app/controllers/AssetSubItemDetailedController.groovy
===================================================================
--- /trunk/grails-app/controllers/AssetSubItemDetailedController.groovy	(revision 386)
+++ /trunk/grails-app/controllers/AssetSubItemDetailedController.groovy	(revision 387)
@@ -1,4 +1,5 @@
 import org.codehaus.groovy.grails.plugins.springsecurity.Secured
 import org.codehaus.groovy.grails.commons.ConfigurationHolder
+import org.apache.commons.lang.WordUtils
 
 @Secured(['ROLE_AppAdmin', 'ROLE_Manager', 'ROLE_AssetManager'])
@@ -165,4 +166,9 @@
             assetSubItemInstance.properties = params
 
+            use(WordUtils) {
+                assetSubItemInstance.name = assetSubItemInstance.name.capitalize()
+                assetSubItemInstance.description = assetSubItemInstance.description.capitalize()
+            }
+
             if(assetSubItemInstance.assets) {
                 assetSubItemInstance.parentItem = null
@@ -170,5 +176,5 @@
 
             if(!assetSubItemInstance.hasErrors() && assetSubItemInstance.save(flush: true)) {
-                flash.message = "AssetSubItem ${params.id} updated"
+                flash.message = "Sub Item '${assetSubItemInstance.name}' updated"
 
                 if(assetSubItemInstance.assets)
@@ -217,5 +223,5 @@
         if(!result.error) {
             // Success.
-            flash.message = g.message(code: "default.create.success", args: ["AssetSubItem", result.assetSubItemInstance.name])
+            flash.message = g.message(code: "default.create.success", args: ["Sub Item", "'${result.assetSubItemInstance.name}'"])
 
             /// @todo: This just grabs the first parent in an unsorted list and needs improving.
Index: /trunk/grails-app/services/AssetService.groovy
===================================================================
--- /trunk/grails-app/services/AssetService.groovy	(revision 386)
+++ /trunk/grails-app/services/AssetService.groovy	(revision 387)
@@ -1,2 +1,5 @@
+
+import org.apache.commons.lang.WordUtils
+
 class AssetService {
 
@@ -116,4 +119,9 @@
         result.assetInstance = new Asset(params)
 
+        use(WordUtils) {
+            result.assetInstance.name = result.assetInstance.name.capitalize()
+            result.assetInstance.description = result.assetInstance.description.capitalize()
+        }
+
         if(result.assetInstance.hasErrors() || !result.assetInstance.save(flush: true))
             return fail(code:"default.create.failure")
Index: /trunk/grails-app/services/AssetSubItemService.groovy
===================================================================
--- /trunk/grails-app/services/AssetSubItemService.groovy	(revision 386)
+++ /trunk/grails-app/services/AssetSubItemService.groovy	(revision 387)
@@ -1,2 +1,5 @@
+
+import org.apache.commons.lang.WordUtils
+
 class AssetSubItemService {
 
@@ -93,4 +96,9 @@
             result.assetSubItemInstance = new AssetSubItem(params)
 
+            use(WordUtils) {
+                result.assetSubItemInstance.name = result.assetSubItemInstance.name.capitalize()
+                result.assetSubItemInstance.description = result.assetSubItemInstance.description.capitalize()
+            }
+
             if(params.asset?.id) {
                 result.assetInstance = Asset.get(params.asset.id)
