The ppp-watch code in initscripts 4.72 has serious flaws that disable normal usage of /sbin/ifup and /sbin/ifdown for PPP connections. I'm using Mandrake and their packages, but it seems like the problem is on your behalf. First, it erroneously expects a return status from socket() to be non-zero for success (actually it have to be non-negative) when it checks whether an interface is up; this error stops ifup from a successful return even when a connection is successfully established. Second, closing the standard descriptors and executing a shell script afterwards is a bad idea, since that shell runs into problems, for example, when doing a pipe. You may consider to use /dev/null instead. I have made a patch that solves both issues, and additionally removes '--remotename' option from parameters that wvdial is issued with by ifup-ppp script - the version of wvdial on my system doesn't recognize it, and it can be placed in /etc/wvdial.conf instead. Email me if you wanna take a look at the patch.
Created attachment 157 [details] Here's that PPP patch
The return code of socket() has been fixed as of the current rawhide release.
ppp-watch is changed to open /dev/null as of initscripts-5.02.