Index: trunk/grails-app/services/AssetService.groovy
===================================================================
--- trunk/grails-app/services/AssetService.groovy	(revision 350)
+++ trunk/grails-app/services/AssetService.groovy	(revision 352)
@@ -12,5 +12,8 @@
         def criteria = AssetSubItem.createCriteria()
         def possibleAssetSubItems = criteria.list() {
-            isNull("parentItem")
+            and {
+                eq('isActive', true)
+                isNull("parentItem")
+                }
         }
     }
Index: trunk/grails-app/services/AssetSubItemService.groovy
===================================================================
--- trunk/grails-app/services/AssetSubItemService.groovy	(revision 350)
+++ trunk/grails-app/services/AssetSubItemService.groovy	(revision 352)
@@ -2,4 +2,21 @@
 
     boolean transactional = false
+
+    /**
+    * Determines and returns sorted list of possible parent items.
+    * @param assetSubItemInstance The instance to prepare the list for.
+    * @returns A list of the possible parentItems.
+    */
+    def possibleParentItems(assetSubItemInstance) {
+        def criteria = AssetSubItem.createCriteria()
+        def possibleParentItems = criteria.list() {
+            and {
+                eq('isActive', true)
+                ne('id', assetSubItemInstance.id)
+                assetSubItemInstance.subItems.each() { notEqual('id', it.id) }
+                }
+        }
+        possibleParentItems.sort { p1, p2 -> p1.name.compareToIgnoreCase(p2.name) }
+    }
 
     def delete(params) {
