Index: xen-3.4.1-testing/tools/hotplug/Linux/network-bridge
===================================================================
--- xen-3.4.1-testing.orig/tools/hotplug/Linux/network-bridge
+++ xen-3.4.1-testing/tools/hotplug/Linux/network-bridge
@@ -241,6 +241,9 @@ op_start () {
         return
     fi
 
+    local bonded=""
+    [ -e /sys/class/net/${netdev}/bonding ] && bonded="yes"
+
     vlans=$(find_active_vlans "${netdev}")
     for vlan in $vlans ; do ifdown $vlan ; done
 
@@ -258,18 +261,32 @@ op_start () {
 	ip link set ${netdev} down
 	ip addr flush ${netdev}
     fi
-    ip link set ${netdev} name ${pdev}
-    ip link set ${tdev} name ${bridge}
-
-    setup_bridge_port ${pdev}
 
-    # Restore slaves
-    if [ -n "${slaves}" ]; then
-	ip link set ${pdev} up
-	ifenslave ${pdev} ${slaves}
+    if [ "x${bonded}" = "xyes" ]
+    then
+	ip link set ${tdev} name ${bridge}
+	ln -sf /etc/sysconfig/network/ifcfg-${netdev} /etc/sysconfig/network/ifcfg-${pdev}
+	ifup ${pdev}
+	local gw=`ip route show dev ${pdev} | fgrep default | sed 's/default via //'`
+	ip addr flush ${pdev}
+	rm -f /etc/sysconfig/network/ifcfg-${pdev}
+	brctl addif ${bridge} ${pdev}
+	ip link set ${bridge} up
+	[ -n "$gw" ] && ip route add default via ${gw}
+    else
+	ip link set ${netdev} name ${pdev}
+	ip link set ${tdev} name ${bridge}
+
+        setup_bridge_port ${pdev}
+
+        # Restore slaves
+        if [ -n "${slaves}" ]; then
+	    ip link set ${pdev} up
+	    ifenslave ${pdev} ${slaves}
+        fi
+        add_to_bridge2 ${bridge} ${pdev}
+	do_ifup ${bridge}
     fi
-    add_to_bridge2 ${bridge} ${pdev}
-    do_ifup ${bridge}
 
     for vlan in $vlans ; do ifup $vlan ; done