--- /etc/inc/interfaces.inc.orig        Tue Nov 20 14:28:39 2007
+++ /etc/inc/interfaces.inc     Tue Nov 20 14:34:41 2007
@@ -400,12 +400,12 @@
        foreach ($viparr as $vip) {
                if ($vip['mode'] == "carp") {
                        $vip_password = $vip['password'];
-                       $vip_password = str_replace(" ", "", $vip_password);
+                       $vip_password = str_replace("'", "\'", $vip_password);
                        /* create the carp interface and setup */
                        mwexec("/sbin/ifconfig carp" . $carp_instances_counter . " create");
                        $broadcast_address = gen_subnet_max($vip['subnet'], $vip['subnet_bits']);
                        if ($vip['password'] != "")
-                               $password = " pass \"" . $vip_password . "\"";
+                               $password = " pass '" . $vip_password . "'";
                        if ($debugging)
                                echo "Configuring carp{$carp_instances_counter}.\n";
                        fwrite($fd, "/sbin/ifconfig carp" . $carp_instances_counter . " " . $vip['subnet'] . "/" . $vip['subnet_bits'] . " broadcast " . $broadcast_address . " vhid " . $vip['vhid'] . "{$carpdev} advskew 200 " . $password . "\n");
@@ -469,13 +469,15 @@
                /* bail if this isn't a carp VIP */
                if ($vip['mode'] != "carp")
                        continue;
+               $vip_password = $vip['password'];
+               $vip_password = str_replace("'", "\'", $vip_password);

                if ($debugging)
                        if ($g['no_echo_console'] == false)
                                echo "Upping interface carp{$carp_instances_counter}.\n";
                $broadcast_address = gen_subnet_max($vip['subnet'], $vip['subnet_bits']);
                if ($vip['password'] != "")
-                       $password = " pass " . $vip['password'];
+                       $password = " pass '" . $vip_password . "'";
                if ($debugging)
                        echo "/sbin/ifconfig carp" . $carp_instances_counter . " " . $vip['subnet'] . "/" . $vip['subnet_bits'] . " broadcast " . $broadcast_address . " vhid " . $vip['vhid'] . "{$carpdev} advskew " . $vip['advskew'] . $password . "\n";
                mwexec("/sbin/ifconfig carp" . $carp_instances_counter . " " . $vip['subnet'] . "/" . $vip['subnet_bits'] . " broadcast " . $broadcast_address . " vhid " . $vip['vhid'] . "{$carpdev} advskew " . $vip['advskew'] . $password);

