Index: trunk/packages/sipb-xen-www/code/validation.py
===================================================================
--- trunk/packages/sipb-xen-www/code/validation.py	(revision 574)
+++ trunk/packages/sipb-xen-www/code/validation.py	(revision 575)
@@ -85,5 +85,5 @@
         return MAX_MEMORY_SINGLE
     machines = getMachinesByOwner(owner, machine)
-    active_machines = [x for x in machines if g.xmlist.get(x)]
+    active_machines = [m for m in machines if m.name in g.xmlist_raw]
     mem_usage = sum([x.memory for x in active_machines if x != machine])
     return min(MAX_MEMORY_SINGLE, MAX_MEMORY_TOTAL-mem_usage)
@@ -105,5 +105,5 @@
 def cantAddVm(owner, g):
     machines = getMachinesByOwner(owner)
-    active_machines = [x for x in machines if g.xmlist.get(x)]
+    active_machines = [m for m in machines if m.name in g.xmlist_raw]
     if len(machines) >= MAX_VMS_TOTAL:
         return 'You have too many VMs to create a new one.'
@@ -201,5 +201,7 @@
     admin).  XXX is modifying this a good idea?
     """
-    if admin in (None, machine.administrator):
+    if admin is None:
+        return None
+    if machine is not None and admin == machine.administrator:
         return None
     if admin == user:
