--- virnetdevopenvswitch.c.old	2013-03-06 14:20:16.855558006 -0300
+++ virnetdevopenvswitch.c	2013-03-06 14:21:02.999557386 -0300
@@ -105,7 +105,15 @@
 
     cmd = virCommandNew(OVSVSCTL);
 
-    virCommandAddArgList(cmd, "--timeout=5", "--", "--may-exist", "add-port",
+    virCommandAddArgList(cmd, "--timeout=5", "--", "--if-exists", "del-port", ifname, NULL);
+
+    if (virCommandRun(cmd, NULL) < 0) {
+        virReportSystemError(VIR_ERR_INTERNAL_ERROR,
+                             _("Unable to delete port %s from OVS"), ifname);
+        goto cleanup;
+    }
+
+    virCommandAddArgList(cmd, "--", "--may-exist", "add-port",
                         brname, ifname, NULL);
 
     if (virBufferUse(&buf) != 0)
