--- /dev/null
+diff -urN rc-scripts-0.4.12.orig/lib/ifdown rc-scripts-0.4.12/lib/ifdown
+--- rc-scripts-0.4.12.orig/lib/ifdown 2014-06-10 06:55:19.000000000 +0000
++++ rc-scripts-0.4.12/lib/ifdown 2014-07-12 18:44:23.637000000 +0000
+@@ -118,25 +118,6 @@
+ ip addr del ${IP4ADDR} label ${SUBDEVICE} dev ${DEVICE}
+ else
+ LC_ALL=C ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush"
+-
+- if [ ${DEVICETYPE} = "bond" ]; then
+- if [ ! -x /sbin/ifenslave ]; then
+- nls "%s is missing. Can't continue." "/sbin/ifenslave"
+- exit 1
+- fi
+-
+- # get up the bonding device before enslaving
+- if ! check_device_down "${DEVICE}"; then
+- ip link set ${DEVICE} up
+- fi
+-
+- for BSVAR in $(awk '/Slave Interface:/{ print $3}' /proc/net/bonding/${DEVICE}); do
+- if [ "${BSVAR}" ]; then
+- ifenslave -d ${DEVICE} $BSVAR
+- fi
+- done
+- fi
+-
+ ip link set ${DEVICE} down
+ fi
+
+diff -urN rc-scripts-0.4.12.orig/lib/ifdown-bond rc-scripts-0.4.12/lib/ifdown-bond
+--- rc-scripts-0.4.12.orig/lib/ifdown-bond 1970-01-01 00:00:00.000000000 +0000
++++ rc-scripts-0.4.12/lib/ifdown-bond 2014-07-12 22:00:34.509000000 +0000
+@@ -0,0 +1,54 @@
++#!/bin/sh
++#
++# ifdown-bond - bonding configuration script
++# Copyright (C) 2014 Marcin Krol <hawk@tld-linux.org>
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++#
++#
++PATH=/sbin:/usr/sbin:/bin:/usr/bin
++
++. /etc/sysconfig/network
++. /etc/rc.d/init.d/functions
++. /lib/rc-scripts/functions.network
++
++CONFIG=$1
++source_config
++
++if [ "x${2}" = "xboot" ] && is_no "${ONBOOT}"; then
++ exit
++fi
++
++# set all major variables
++setup_ip_param
++
++# forget all addresses
++LC_ALL=C ip addr flush dev ${DEVICE} 2>&1 | grep -v "Nothing to flush"
++
++# release slave devices
++for SLAVE_DEV in $(cat /sys/class/net/${DEVICE}/bonding/slaves); do
++ echo "-${SLAVE_DEV}" > /sys/class/net/${DEVICE}/bonding/slaves
++done
++
++# bring bonding master down
++ip link set ${DEVICE} down
++
++# remove bonding master
++if grep -wq "${DEVICE}" /sys/class/net/bonding_masters; then
++ echo "-${DEVICE}" > /sys/class/net/bonding_masters
++ if [ $? -ne 0 ]; then
++ exit 1
++ fi
++fi
+diff -urN rc-scripts-0.4.12.orig/lib/ifup rc-scripts-0.4.12/lib/ifup
+--- rc-scripts-0.4.12.orig/lib/ifup 2014-06-10 06:55:19.000000000 +0000
++++ rc-scripts-0.4.12/lib/ifup 2014-07-12 21:58:42.147000000 +0000
+@@ -89,18 +89,12 @@
+ exit 1
+ fi
+
+-if is_yes "$SLAVE" && [ ! -x /sbin/ifenslave ]; then
+- nls "%s is missing. Can't continue." "/sbin/ifenslave"
+- exit 1
+-fi
+-
+-if is_yes "$SLAVE" && [ -n "$MASTER" -a -x /sbin/ifenslave ]; then
+- RFLAG="" && is_yes "${RECIEVE-ONLY}" && RFLAG="-r"
+-
+- ip link set ${DEVICE} down
+- nls "Enslaving %s to %s" "$DEVICE" "$MASTER"
+- ifenslave $RFLAG "$MASTER" "$DEVICE"
+-
++if is_yes "$SLAVE" && [ -n "$MASTER" ]; then
++ if ! grep -wq "${DEVICE}" /sys/class/net/${MASTER}/bonding/slaves 2>/dev/null; then
++ nls "Enslaving %s to %s" "$DEVICE" "$MASTER"
++ ip link set dev ${DEVICE} down
++ echo "+${DEVICE}" > /sys/class/net/${MASTER}/bonding/slaves 2>/dev/null
++ fi
+ if [ -n "$ETHTOOL_OPTS" ] ; then
+ /sbin/ethtool -s $DEVICE $ETHTOOL_OPTS
+ fi
+diff -urN rc-scripts-0.4.12.orig/lib/ifup-bond rc-scripts-0.4.12/lib/ifup-bond
+--- rc-scripts-0.4.12.orig/lib/ifup-bond 1970-01-01 00:00:00.000000000 +0000
++++ rc-scripts-0.4.12/lib/ifup-bond 2014-07-12 22:08:02.953000000 +0000
+@@ -0,0 +1,75 @@
++#!/bin/sh
++#
++# ifup-bond - bonding configuration script
++# Copyright (C) 2014 Marcin Krol <hawk@tld-linux.org>
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++#
++#
++PATH=/sbin:/usr/sbin:/bin:/usr/bin
++
++. /etc/sysconfig/network
++. /etc/rc.d/init.d/functions
++. /lib/rc-scripts/functions.network
++
++CONFIG=$1
++source_config
++
++if [ "x${2}" = "xboot" ] && is_no "${ONBOOT}"; then
++ exit
++fi
++
++# check for bonding support
++if [ ! -f /sys/class/net/bonding_masters ]; then
++ modprobe -s bonding || exit 1
++ # delete default bond0
++ echo "-bond0" > /sys/class/net/bonding_masters
++fi
++
++# set all major variables
++setup_ip_param
++
++# create bonding master
++if ! grep -wq "${DEVICE}" /sys/class/net/bonding_masters; then
++ echo "+${DEVICE}" > /sys/class/net/bonding_masters
++ if [ $? -eq 0 ]; then
++ ip link set dev ${DEVICE} multicast ${MULTICAST} ${ARP}
++ else
++ exit 1
++ fi
++fi
++
++# add the bits to setup driver parameters here
++# taken from Fedora initscripts
++for arg in ${BONDING_OPTS} ; do
++ key=${arg%%=*};
++ value=${arg##*=};
++ if [ "${key}" = "arp_ip_target" -a "${value:0:1}" != "+" ]; then
++ OLDIFS=$IFS;
++ IFS=',';
++ for arp_ip in $value; do
++ if ! grep -q $arp_ip /sys/class/net/${DEVICE}/bonding/$key; then
++ echo +$arp_ip > /sys/class/net/${DEVICE}/bonding/$key
++ fi
++ done
++ IFS=$OLDIFS;
++ elif [ "${key}" = "arp_ip_target" ]; then
++ if ! grep -q ${value#+} /sys/class/net/${DEVICE}/bonding/$key; then
++ echo "$value" > /sys/class/net/${DEVICE}/bonding/$key
++ fi
++ elif [ "${key}" != "primary" ]; then
++ echo $value > /sys/class/net/${DEVICE}/bonding/$key
++ fi
++done
+diff -urN rc-scripts-0.4.12.orig/lib/Makefile.am rc-scripts-0.4.12/lib/Makefile.am
+--- rc-scripts-0.4.12.orig/lib/Makefile.am 2013-11-02 20:50:20.000000000 +0000
++++ rc-scripts-0.4.12/lib/Makefile.am 2014-07-12 22:01:57.571000000 +0000
+@@ -10,6 +10,7 @@
+ scriptsdir = @exec_prefix@/lib/$(PACKAGE)
+
+ scripts_SCRIPTS = \
++ ifdown-bond \
+ ifdown-br \
+ ifdown-irda \
+ ifdown-ppp \
+@@ -17,6 +18,7 @@
+ ifdown-sl \
+ ifdown-vlan \
+ ifup-aliases \
++ ifup-bond \
+ ifup-br \
+ ifup-ipx \
+ ifup-irda \
+diff -urN rc-scripts-0.4.12.orig/lib/Makefile.in rc-scripts-0.4.12/lib/Makefile.in
+--- rc-scripts-0.4.12.orig/lib/Makefile.in 2014-07-12 11:45:17.000000000 +0000
++++ rc-scripts-0.4.12/lib/Makefile.in 2014-07-12 22:01:50.605000000 +0000
+@@ -256,6 +256,7 @@
+ #scriptsdir = @networkscriptsdir@
+ scriptsdir = @exec_prefix@/lib/$(PACKAGE)
+ scripts_SCRIPTS = \
++ ifdown-bond \
+ ifdown-br \
+ ifdown-irda \
+ ifdown-ppp \
+@@ -263,6 +264,7 @@
+ ifdown-sl \
+ ifdown-vlan \
+ ifup-aliases \
++ ifup-bond \
+ ifup-br \
+ ifup-ipx \
+ ifup-irda \