diff --git a/doc/examples/batcher-instances.json b/doc/examples/batcher-instances.json
new file mode 100644
index 0000000000000000000000000000000000000000..0f24606dec507be4c1cc56c34f050fbd7294b97e
--- /dev/null
+++ b/doc/examples/batcher-instances.json
@@ -0,0 +1,14 @@
+{
+  "instance1.example.com": {
+    "template": "drbd",
+    "os": "debootstrap",
+    "disk_size": ["25G"],
+    "ram_size": 512
+  },
+  "instance2.example.com": {
+    "template": "plain",
+    "os": "debootstrap",
+    "disk_size": ["100G"],
+    "ram_size": 512
+  }
+}
diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index e54c17962e6e30d97d8bad3f8d34ea6490ba6d1d..4c3865f0961b3334cb422395f36b7e8be62978dd 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -4193,7 +4193,9 @@ class LUCreateInstance(LogicalUnit):
           raise errors.OpPrereqError("Invalid MAC address specified: %s" %
                                      mac)
       # bridge verification
-      bridge = nic.get("bridge", self.cfg.GetDefBridge())
+      bridge = nic.get("bridge", None)
+      if bridge is None:
+        bridge = self.cfg.GetDefBridge()
       self.nics.append(objects.NIC(mac=mac, ip=nic_ip, bridge=bridge))
 
     # disk checks/pre-build
diff --git a/lib/utils.py b/lib/utils.py
index 691b0ee6bc38a5e2f9df743112c813490762b76e..f1d0f993ffe05fa0f4b2e0f788f2c62b42a22903 100644
--- a/lib/utils.py
+++ b/lib/utils.py
@@ -751,7 +751,7 @@ def ParseUnit(input_string):
   is always an int in MiB.
 
   """
-  m = re.match('^([.\d]+)\s*([a-zA-Z]+)?$', input_string)
+  m = re.match('^([.\d]+)\s*([a-zA-Z]+)?$', str(input_string))
   if not m:
     raise errors.UnitParseError("Invalid format")
 
diff --git a/scripts/gnt-instance b/scripts/gnt-instance
index 959990ad9f054f60e46185ef2ef2e1d2d9213993..a57c7b4e3348b8014616c1cca3d0eaa4c16b4885 100755
--- a/scripts/gnt-instance
+++ b/scripts/gnt-instance
@@ -375,13 +375,12 @@ def BatchCreate(opts, args):
   in the form::
 
     {"instance-name":{
-      "disk_size": 25,
-      "swap_size": 1024,
+      "disk_size": [20480],
       "template": "drbd",
       "backend": {
         "memory": 512,
         "vcpus": 1 },
-      "os": "etch-image",
+      "os": "debootstrap",
       "primary_node": "firstnode",
       "secondary_node": "secondnode",
       "iallocator": "dumb"}
@@ -397,8 +396,7 @@ def BatchCreate(opts, args):
   @return: the desired exit code
 
   """
-  _DEFAULT_SPECS = {"disk_size": 20 * 1024,
-                    "swap_size": 4 * 1024,
+  _DEFAULT_SPECS = {"disk_size": [20 * 1024],
                     "backend": {},
                     "iallocator": None,
                     "primary_node": None,
@@ -458,19 +456,29 @@ def BatchCreate(opts, args):
     if specs['hypervisor']:
       hypervisor, hvparams = specs['hypervisor'].iteritems()
 
+    disks = []
+    for elem in specs['disk_size']:
+      try:
+        size = utils.ParseUnit(elem)
+      except ValueError, err:
+        raise errors.OpPrereqError("Invalid disk size '%s' for"
+                                   " instance %s: %s" %
+                                   (elem, name, err))
+      disks.append({"size": size})
+
+    nic0 = {'ip': specs['ip'], 'bridge': specs['bridge'], 'mac': specs['mac']}
+
     op = opcodes.OpCreateInstance(instance_name=name,
-                                  disk_size=specs['disk_size'],
-                                  swap_size=specs['swap_size'],
+                                  disks=disks,
                                   disk_template=specs['template'],
                                   mode=constants.INSTANCE_CREATE,
                                   os_type=specs['os'],
                                   pnode=specs['primary_node'],
                                   snode=specs['secondary_node'],
-                                  ip=specs['ip'], bridge=specs['bridge'],
+                                  nics=[nic0],
                                   start=specs['start'],
                                   ip_check=specs['ip_check'],
                                   wait_for_sync=True,
-                                  mac=specs['mac'],
                                   iallocator=specs['iallocator'],
                                   hypervisor=hypervisor,
                                   hvparams=hvparams,