--- a/script/ethercatctl.in	2015-09-04 09:53:50.102452458 -0700
+++ b/script/ethercatctl.in	2015-09-04 09:57:13.780119140 -0700
@@ -109,13 +109,18 @@
         fi
 
         if [ ${MODULE} != "generic" -a ${MODULE} != "ccat" ]; then
-            # try to unload standard module
-            if ${LSMOD} | grep "^${MODULE} " > /dev/null; then
-                if ! ${RMMOD} ${MODULE}; then
-                    ${RMMOD} ${LOADED_MODULES}
-                    exit 1
-                fi
-            fi
+            # unbind the standard driver for this interface
+            for MAC in ${DEVICES} ${BACKUPS}; do
+                mac=${MAC,,}
+                for address in $(ls /sys/bus/pci/drivers/${MODULE}/*/net/*/address); do
+                    if test $(cat ${address}) = ${mac}; then
+                        device=$(basename $(realpath $(dirname ${address})/device))
+                        echo -n ${device} > /sys/bus/pci/drivers/${MODULE}/unbind
+                        sleep 1
+                        break
+                    fi
+                done
+            done
         fi
 
         if ! ${MODPROBE} ${MODPROBE_FLAGS} ${ECMODULE}; then
