diff --git a/lib/cli.py b/lib/cli.py
index 591926d53d3fab857af2a747479d4f04266fc9a5..08827061ab3c824b0b5fd44fd14b8b5621d82deb 100644
--- a/lib/cli.py
+++ b/lib/cli.py
@@ -1536,9 +1536,12 @@ def GenericInstanceCreate(mode, opts, args):
   elif opts.no_nics:
     # no nics
     nics = []
-  else:
+  elif mode == constants.INSTANCE_CREATE:
     # default of one nic, all auto
     nics = [{}]
+  else:
+    # mode == import
+    nics = []
 
   if opts.disk_template == constants.DT_DISKLESS:
     if opts.disks or opts.sd_size is not None:
diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index ea404a7f7badf7daa492aa18f8a9ac7dec4b74c6..bb6a190e81cd7421a7acd5e45c10dc253202aba7 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -6278,6 +6278,17 @@ class LUCreateInstance(LogicalUnit):
                                    " is missing the disk information",
                                    errors.ECODE_INVAL)
 
+    if (not self.op.nics and
+        einfo.has_option(constants.INISECT_INS, "nic_count")):
+      nics = []
+      for idx in range(einfo.getint(constants.INISECT_INS, "nic_count")):
+        ndict = {}
+        for name in list(constants.NICS_PARAMETERS) + ["ip", "mac"]:
+          v = einfo.get(constants.INISECT_INS, "nic%d_%s" % (idx, name))
+          ndict[name] = v
+        nics.append(ndict)
+      self.op.nics = nics
+
     if (self.op.hypervisor is None and
         einfo.has_option(constants.INISECT_INS, "hypervisor")):
       self.op.hypervisor = einfo.get(constants.INISECT_INS, "hypervisor")