diff --git a/lib/objects.py b/lib/objects.py
index 1a6178d6553002645a96a3ba38de97c0ade6e1cb..73f89d1af10eb0bb890639bf44e564873c32b2f5 100644
--- a/lib/objects.py
+++ b/lib/objects.py
@@ -312,6 +312,24 @@ class NIC(ConfigObject):
   """Config object representing a network card."""
   __slots__ = ["mac", "ip", "bridge"]
 
+  @classmethod
+  def CheckParameterSyntax(cls, nicparams):
+    """Check the given parameters for validity.
+
+    @type nicparams:  dict
+    @param nicparams: dictionary with parameter names/value
+    @raise errors.ConfigurationError: when a parameter is not valid
+
+    """
+    if nicparams[constants.NIC_MODE] not in constants.NIC_VALID_MODES:
+      err = "Invalid nic mode: %s" % nicparams[constants.NIC_MODE]
+      raise errors.ConfigurationError(err)
+
+    if (nicparams[constants.NIC_MODE] is constants.NIC_MODE_BRIDGED and
+        not nicparams[constants.NIC_LINK]):
+      err = "Missing bridged nic link"
+      raise errors.ConfigurationError(err)
+
 
 class Disk(ConfigObject):
   """Config object representing a block device."""
diff --git a/test/ganeti.config_unittest.py b/test/ganeti.config_unittest.py
index 24c9491ca435724f8613cc845e2a3615ac3aa448..b9b293eb7222b721bd045a502f886ca5ed284a9c 100755
--- a/test/ganeti.config_unittest.py
+++ b/test/ganeti.config_unittest.py
@@ -152,6 +152,24 @@ class TestConfigRunner(unittest.TestCase):
     # but the fake_instance update should still fail
     self.failUnlessRaises(errors.ConfigurationError, cfg.Update, fake_instance)
 
+  def testNICParameterSyntaxCheck(self):
+    """Test the NIC's CheckParameterSyntax function"""
+    mode = constants.NIC_MODE
+    link = constants.NIC_LINK
+    m_bridged = constants.NIC_MODE_BRIDGED
+    m_routed = constants.NIC_MODE_ROUTED
+    CheckSyntax = objects.NIC.CheckParameterSyntax
+
+    CheckSyntax(constants.NICC_DEFAULTS)
+    CheckSyntax({mode: m_bridged, link: 'br1'})
+    CheckSyntax({mode: m_routed, link: 'default'})
+    self.assertRaises(errors.ConfigurationError,
+                      CheckSyntax, {mode: '000invalid', link: 'any'})
+    self.assertRaises(errors.ConfigurationError,
+                      CheckSyntax, {mode: m_bridged, link: None})
+    self.assertRaises(errors.ConfigurationError,
+                      CheckSyntax, {mode: m_bridged, link: ''})
+
 
 if __name__ == '__main__':
   unittest.main()