diff -ur -x configure -x config.h.in compiz-0.6.3~git20071104.c9009efd/configure.ac compiz-0.6.3~git20071104.c9009efd.new/configure.ac --- compiz-0.6.3~git20071104.c9009efd/configure.ac 2007-11-01 16:10:02.000000000 +0100 +++ compiz-0.6.3~git20071104.c9009efd.new/configure.ac 2007-12-10 16:53:06.000000000 +0100 @@ -477,6 +477,13 @@ AC_DEFINE(USE_KDE, 1, [Build kde window decorator]) fi +AC_MSG_CHECKING([whether fuse_unmount takes two arguments]) +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[fuse_unmount (0, 0);]])], + [AC_DEFINE(FUSE_UNMOUNT_TAKES_TWO_ARGUMENTS, 1, [fuse_unmount takes two arguments]) takes_two=yes], + [AC_DEFINE(FUSE_UNMOUNT_TAKES_TWO_ARGUMENTS, 0, [fuse_unmount takes two arguments]) takes_two=no]) +AC_MSG_RESULT([$takes_two]) + AC_SUBST(KDE_CFLAGS) AC_SUBST(KDE_LIBS) AC_SUBST(QT_MOC) diff -ur -x configure -x config.h.in compiz-0.6.3~git20071104.c9009efd/plugins/fuse.c compiz-0.6.3~git20071104.c9009efd.new/plugins/fuse.c --- compiz-0.6.3~git20071104.c9009efd/plugins/fuse.c 2007-11-01 16:10:02.000000000 +0100 +++ compiz-0.6.3~git20071104.c9009efd.new/plugins/fuse.c 2007-12-10 16:53:06.000000000 +0100 @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -1292,8 +1293,12 @@ if (fd->mountPoint) { - /* unmount will destroy the channel */ +#if FUSE_UNMONT_TAKES_TWO_ARGUMENTS fuse_unmount (fd->mountPoint, fd->channel); +#else + fuse_chan_destroy (fd->channel); + fuse_unmount (fd->mountPoint); +#endif free (fd->mountPoint); fd->mountPoint = NULL; fd->channel = NULL; @@ -1368,7 +1373,12 @@ fd->buffer = malloc (fuse_chan_bufsize (fd->channel)); if (!fd->buffer) { +#if FUSE_UNMONT_TAKES_TWO_ARGUMENTS fuse_unmount (mountPoint, fd->channel); +#else + fuse_chan_destroy (fd->channel); + fuse_unmount (mountPoint); +#endif free (mountPoint); fd->channel = NULL; return;