diff --git a/aclocal.m4 b/aclocal.m4
index 87dd531ba941330b63c031a7fddd77c2d431dc56..7438a79d218d5cc3a7bad9c1352e58ac8b4e403d 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -883,6 +883,33 @@ AC_DEFUN([AM_MAINTAINER_MODE],
 
 AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
 
+# isc-posix.m4 serial 2 (gettext-0.11.2)
+dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+# This file is not needed with autoconf-2.53 and newer.  Remove it in 2005.
+
+# This test replaces the one in autoconf.
+# Currently this macro should have the same name as the autoconf macro
+# because gettext's gettext.m4 (distributed in the automake package)
+# still uses it.  Otherwise, the use in gettext.m4 makes autoheader
+# give these diagnostics:
+#   configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
+#   configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
+
+undefine([AC_ISC_POSIX])
+
+AC_DEFUN([AC_ISC_POSIX],
+  [
+    dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
+    AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
+  ]
+)
+
 
 # serial 46 AC_PROG_LIBTOOL
 AC_DEFUN([AC_PROG_LIBTOOL],
@@ -1459,7 +1486,7 @@ irix5* | irix6*)
 # This must be Linux ELF.
 linux-gnu*)
   case $host_cpu in
-  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+  alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* )
     lt_cv_deplibs_check_method=pass_all ;;
   *)
     # glibc up to 2.1.1 does not perform some relocations on ARM
diff --git a/configure b/configure
index 6453a2a2c0ca6ea581f43be67953c90c4637a79b..53a35bc26e9c67f81e3a8cf46514e72733d9f71e 100755
--- a/configure
+++ b/configure
@@ -1572,7 +1572,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=xfwm4
- VERSION=3.91.0
+ VERSION=3.92.0
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3028,13 +3028,14 @@ fi
 rm -f conftest*
 
 
-echo "$as_me:$LINENO: checking for library containing strerror" >&5
-echo $ECHO_N "checking for library containing strerror... $ECHO_C" >&6
-if test "${ac_cv_search_strerror+set}" = set; then
+
+        echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5
+echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6
+if test "${ac_cv_lib_cposix_strerror+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_func_search_save_LIBS=$LIBS
-ac_cv_search_strerror=no
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcposix  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
 /* confdefs.h.  */
@@ -3070,69 +3071,23 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_search_strerror="none required"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-if test "$ac_cv_search_strerror" = no; then
-  for ac_lib in cposix; do
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-    cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char strerror ();
-int
-main ()
-{
-strerror ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_search_strerror="-l$ac_lib"
-break
+  ac_cv_lib_cposix_strerror=yes
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+ac_cv_lib_cposix_strerror=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-  done
+LIBS=$ac_check_lib_save_LIBS
 fi
-LIBS=$ac_func_search_save_LIBS
+echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5
+echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6
+if test $ac_cv_lib_cposix_strerror = yes; then
+  LIBS="$LIBS -lcposix"
 fi
-echo "$as_me:$LINENO: result: $ac_cv_search_strerror" >&5
-echo "${ECHO_T}$ac_cv_search_strerror" >&6
-if test "$ac_cv_search_strerror" != no; then
-  test "$ac_cv_search_strerror" = "none required" || LIBS="$ac_cv_search_strerror $LIBS"
 
-fi
+
 
 echo "$as_me:$LINENO: checking for ANSI C header files" >&5
 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
@@ -4725,7 +4680,7 @@ irix5* | irix6*)
 # This must be Linux ELF.
 linux-gnu*)
   case $host_cpu in
-  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* )
+  alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* )
     lt_cv_deplibs_check_method=pass_all ;;
   *)
     # glibc up to 2.1.1 does not perform some relocations on ARM
@@ -5125,7 +5080,7 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
 case $host in
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 5128 "configure"' > conftest.$ac_ext
+  echo '#line 5083 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
diff --git a/configure.ac b/configure.ac
index 4a877e77e74019bf5a7b17440ba157a848ef2eb5..5dd5809784889e9564c930fcca83399b37971d19 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7,7 +7,7 @@ AC_INIT([src/main.c])
 
 AC_PREREQ(2.52)
 
-AM_INIT_AUTOMAKE([xfwm4], [3.91.0])
+AM_INIT_AUTOMAKE([xfwm4], [3.92.0])
 
 AM_CONFIG_HEADER([config.h])
 
diff --git a/ltcf-c.sh b/ltcf-c.sh
index 570aa4541701f4d971f75fdba7c1954326365912..d9bbae95441e9f0c55bf9eb72e570ceb2469b2ef 100644
--- a/ltcf-c.sh
+++ b/ltcf-c.sh
@@ -173,13 +173,23 @@ EOF
       $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
     ;;
 
+  darwin* | rhapsody*)
+    allow_undefined_flag='-undefined suppress'
+    archive_cmds='$CC `test .$module = .yes && echo -bundle || echo -dynamiclib` $allow_undefined_flag -o $lib $libobjs $deplibs $linkopts -install_name $rpath/$soname `test -n "$verstring" -a x$verstring != x0.0 && echo $verstring`'
+    # We need to add '_' to the symbols in $export_symbols first
+    #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
+    hardcode_direct=yes
+    hardcode_shlibpath_var=no
+    whole_archive_flag_spec='-all_load $convenience'
+    ;;
+
   netbsd*)
     if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
       archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
       wlarc=
     else
-      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
     fi
     ;;
 
@@ -369,23 +379,6 @@ else
     fix_srcfile_path='`cygpath -w "$srcfile"`'
     ;;
 
-  darwin* | rhapsody*)
-    case "$host_os" in
-    rhapsody* | darwin1.[012])
-      allow_undefined_flag='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      allow_undefined_flag='-flat_namespace -undefined suppress'
-      ;;
-    esac
-    archive_cmds='$CC $(if test .$module = .yes; then echo -bundle; else echo -dynamiclib; fi) $allow_undefined_flag -o $lib $libobjs $deplibs $linkopts -install_name $rpath/$soname $verstring'
-    # We need to add '_' to the symbols in $export_symbols first
-    #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols $lib'
-    hardcode_direct=yes
-    hardcode_shlibpath_var=no
-    whole_archive_flag_spec='-all_load $convenience'
-    ;;
-
   freebsd1*)
     ld_shlibs=no
     ;;
@@ -651,7 +644,7 @@ else
     darwin* | rhapsody*)
       # PIC is the default on this platform
       # Common symbols not allowed in MH_DYLIB files
-      ac_cv_prog_cc_pic='-fno-common'
+      lt_cv_prog_cc_pic='-fno-common'
       ;;
     *djgpp*)
       # DJGPP does not support shared libraries at all
diff --git a/ltconfig b/ltconfig
index 91907462a058bc24fb712e357573c251e0e63865..1eb4072f95de2d917e086337ad3a336def6ca818 100755
--- a/ltconfig
+++ b/ltconfig
@@ -1104,7 +1104,7 @@ darwin* | rhapsody*)
   version_type=darwin
   need_lib_prefix=no
   need_version=no
-  library_names_spec='${libname}${release}${versuffix}.`test .$module = .yes && echo so || echo dylib` ${libname}${release}${major}.`test .$module = .yes && echo so || echo dylib` ${libname}.`test .$module = .yes && echo so || echo dylib`'
+  library_names_spec='${libname}${release}${versuffix}.`test .$module = .yes && echo so || echo dylib` ${libname}${release}${major}.$`test .$module = .yes && echo so || echo dylib` ${libname}.`test .$module = .yes && echo so || echo dylib`'
   soname_spec='${libname}${release}${major}.`test .$module = .yes && echo so || echo dylib`'
   shlibpath_overrides_runpath=yes
   shlibpath_var=DYLD_LIBRARY_PATH
@@ -1116,17 +1116,16 @@ freebsd1*)
 
 freebsd*)
   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=sunos
-  case $objformat in
-    elf*)
-      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-      soname_spec='${libname}${release}.so$major'
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
       need_version=no
       need_lc=no
       need_lib_prefix=no
       ;;
-    *)
-      library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+    freebsd-*)
+      library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
       need_version=yes
       ;;
   esac
@@ -1168,7 +1167,7 @@ hpux9* | hpux10* | hpux11*)
   ;;
 
 irix5* | irix6*)
-  version_type=sunos
+  version_type=irix
   need_lib_prefix=no
   need_version=no
   soname_spec='${libname}${release}.so$major'
@@ -1199,7 +1198,7 @@ linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
 
 # This must be Linux ELF.
 linux-gnu*)
-  version_type=sunos
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
@@ -1237,8 +1236,6 @@ netbsd*)
   shlibpath_var=LD_LIBRARY_PATH
   shlibpath_overrides_runpath=yes
   hardcode_into_libs=yes
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  sys_lib_search_path_spec="/usr/lib"
   ;;
 
 newsos6)
@@ -1285,7 +1282,7 @@ sco3.2v5*)
   ;;
 
 solaris*)
-  version_type=sunos
+  version_type=linux
   need_lib_prefix=no
   need_version=no
   library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
@@ -1430,11 +1427,11 @@ void nm_test_func(){}
 int main(){nm_test_var='a';nm_test_func();return(0);}
 EOF
 
-  echo "$progname:1433: checking if global_symbol_pipe works" >&5
-  if { (eval echo $progname:1434: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
+  echo "$progname:1430: checking if global_symbol_pipe works" >&5
+  if { (eval echo $progname:1431: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if { echo "$progname:1437: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
+    if { echo "$progname:1434: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then
 
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
@@ -1486,7 +1483,7 @@ EOF
 	  save_CFLAGS="$CFLAGS"
 	  LIBS="conftstm.$objext"
 	  CFLAGS="$CFLAGS$no_builtin_flag"
-	  if { (eval echo $progname:1489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+	  if { (eval echo $progname:1486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
 	    pipe_works=yes
 	  else
 	    echo "$progname: failed program was:" >&5
@@ -1590,14 +1587,14 @@ else
 if test "X${lt_cv_dlopen+set}" != Xset; then
   lt_cv_dlopen=no lt_cv_dlopen_libs=
 echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "$progname:1593: checking for dlopen in -ldl" >&5
+echo "$progname:1590: checking for dlopen in -ldl" >&5
 if test "X${ac_cv_lib_dl_dlopen+set}" = Xset; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1600 "ltconfig"
+#line 1597 "ltconfig"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
@@ -1610,7 +1607,7 @@ int main() {
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo $progname:1613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo $progname:1610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_lib_dl_dlopen=yes
 else
@@ -1629,12 +1626,12 @@ if test "X$ac_cv_lib_dl_dlopen" = Xyes; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "$progname:1632: checking for dlopen" >&5
+echo "$progname:1629: checking for dlopen" >&5
 if test "X${ac_cv_func_dlopen+set}" = Xset; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1637 "ltconfig"
+#line 1634 "ltconfig"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dlopen(); below.  */
 #include <assert.h>
@@ -1659,7 +1656,7 @@ dlopen();
 
 ; return 0; }
 EOF
-if { (eval echo $progname:1662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo $progname:1659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_dlopen=yes
 else
@@ -1676,14 +1673,14 @@ if test "X$ac_cv_func_dlopen" = Xyes; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6
-echo "$progname:1679: checking for dlopen in -lsvld" >&5
+echo "$progname:1676: checking for dlopen in -lsvld" >&5
 if test "X${ac_cv_lib_svld_dlopen+set}" = Xset; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-lsvld  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1686 "ltconfig"
+#line 1683 "ltconfig"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
@@ -1696,7 +1693,7 @@ int main() {
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo $progname:1699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo $progname:1696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_lib_svld_dlopen=yes
 else
@@ -1715,14 +1712,14 @@ if test "X$ac_cv_lib_svld_dlopen" = Xyes; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
-echo "$progname:1718: checking for dld_link in -ldld" >&5
+echo "$progname:1715: checking for dld_link in -ldld" >&5
 if test "X${ac_cv_lib_dld_dld_link+set}" = Xset; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-ldld  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1725 "ltconfig"
+#line 1722 "ltconfig"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
@@ -1735,7 +1732,7 @@ int main() {
 dld_link()
 ; return 0; }
 EOF
-if { (eval echo $progname:1738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo $progname:1735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_lib_dld_dld_link=yes
 else
@@ -1754,12 +1751,12 @@ if test "X$ac_cv_lib_dld_dld_link" = Xyes; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for shl_load""... $ac_c" 1>&6
-echo "$progname:1757: checking for shl_load" >&5
+echo "$progname:1754: checking for shl_load" >&5
 if test "X${ac_cv_func_shl_load+set}" = Xset; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1762 "ltconfig"
+#line 1759 "ltconfig"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shl_load(); below.  */
 #include <assert.h>
@@ -1784,7 +1781,7 @@ shl_load();
 
 ; return 0; }
 EOF
-if { (eval echo $progname:1787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo $progname:1784: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_shl_load=yes
 else
@@ -1802,14 +1799,14 @@ if test "X$ac_cv_func_shl_load" = Xyes; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "$progname:1805: checking for shl_load in -ldld" >&5
+echo "$progname:1802: checking for shl_load in -ldld" >&5
 if test "X${ac_cv_lib_dld_shl_load+set}" = Xset; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-ldld  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1812 "ltconfig"
+#line 1809 "ltconfig"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -1823,7 +1820,7 @@ int main() {
 shl_load()
 ; return 0; }
 EOF
-if { (eval echo $progname:1826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo $progname:1823: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_lib_dld_shl_load=yes
 else
@@ -1870,18 +1867,18 @@ fi
 for ac_hdr in dlfcn.h; do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "$progname:1873: checking for $ac_hdr" >&5
+echo "$progname:1870: checking for $ac_hdr" >&5
 if eval "test \"`echo 'X$''{'ac_cv_header_$ac_safe'+set}'`\" = Xset"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1878 "ltconfig"
+#line 1875 "ltconfig"
 #include <$ac_hdr>
 int fnord = 0;
 int main () { return(0); }
 EOF
 ac_try="$ac_compile >/dev/null 2>conftest.out"
-{ (eval echo $progname:1884: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo $progname:1881: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1909,7 +1906,7 @@ done
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
   echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
-echo "$progname:1912: checking whether a program can dlopen itself" >&5
+echo "$progname:1909: checking whether a program can dlopen itself" >&5
 if test "X${lt_cv_dlopen_self+set}" = Xset; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1917,7 +1914,7 @@ else
     lt_cv_dlopen_self=cross
   else
     cat > conftest.$ac_ext <<EOF
-#line 1920 "ltconfig"
+#line 1917 "ltconfig"
 
 #if HAVE_DLFCN_H
 #include <dlfcn.h>
@@ -1964,7 +1961,7 @@ int main() {
                if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
 
 EOF
-if { (eval echo $progname:1967: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo $progname:1964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   lt_cv_dlopen_self=yes
 else
@@ -1983,7 +1980,7 @@ echo "$ac_t""$lt_cv_dlopen_self" 1>&6
   if test "$lt_cv_dlopen_self" = yes; then
     LDFLAGS="$LDFLAGS $link_static_flag"
   echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
-echo "$progname:1986: checking whether a statically linked program can dlopen itself" >&5
+echo "$progname:1983: checking whether a statically linked program can dlopen itself" >&5
 if test "X${lt_cv_dlopen_self_static+set}" = Xset; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1991,7 +1988,7 @@ else
     lt_cv_dlopen_self_static=cross
   else
     cat > conftest.$ac_ext <<EOF
-#line 1994 "ltconfig"
+#line 1991 "ltconfig"
 
 #if HAVE_DLFCN_H
 #include <dlfcn.h>
@@ -2038,7 +2035,7 @@ int main() {
     if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); }
 
 EOF
-if { (eval echo $progname:2041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo $progname:2038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   lt_cv_dlopen_self_static=yes
 else
diff --git a/ltmain.sh b/ltmain.sh
index ecc7e6dfe824032c2599f152ec4946ae6b56ed07..25e0cf9d99ae6e9344f9fab8006d1870d2c167ad 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -211,8 +211,6 @@ do
   --mode) prevopt="--mode" prev=mode ;;
   --mode=*) mode="$optarg" ;;
 
-  --preserve-dup-deps) duplicate_deps="yes" ;;
-
   --quiet | --silent)
     show=:
     ;;
@@ -258,7 +256,7 @@ if test -z "$show_help"; then
   # Infer the operation mode.
   if test -z "$mode"; then
     case $nonopt in
-    *cc | *++ | gcc* | *-gcc* | *CC)
+    *cc | *++ | gcc* | *-gcc*)
       mode=link
       for arg
       do
@@ -496,21 +494,11 @@ if test -z "$show_help"; then
     # command doesn't match the default compiler.
     if test -n "$available_tags" && test -z "$tagname"; then
       case $base_compile in
-      "$CC "*) tagname=CC ;;
+      "$CC "*) ;;
       # Blanks in the command may have been stripped by the calling shell,
       # but not from the CC environment variable when ltconfig was run.
-      "`$echo $CC` "*) tagname=CC ;;
-      *)   base_compiler=`echo $base_compile | awk '{ print $1 }'`
-	   case $base_compiler in
-	   *cc)	tagname=CC ;;
-	   *++)
-	     tagname=CXX
-	     eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
-	     ;;
-	   esac ;;
-      esac
-    fi
-    if test -n "$available_tags" && test -z "$tagname"; then
+      "`$echo $CC` "*) ;;
+      *)
         for z in $available_tags; do
           if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
 	    # Evaluate the configuration.
@@ -540,6 +528,8 @@ if test -z "$show_help"; then
 #        else
 #          echo "$modename: using $tagname tagged configuration"
         fi
+	;;
+      esac
     fi
 
     objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
@@ -1538,21 +1528,11 @@ EOF
     # command doesn't match the default compiler.
     if test -n "$available_tags" && test -z "$tagname"; then
       case $base_compile in
-      "$CC "*) tagname=CC ;;
+      "$CC "*) ;;
       # Blanks in the command may have been stripped by the calling shell,
       # but not from the CC environment variable when ltconfig was run.
-      "`$echo $CC` "*) tagname=CC ;;
-      *)   base_compiler=`echo $base_compile | awk '{ print $1 }'`
-	   case $base_compiler in
-	   *cc)	tagname=CC ;;
-	   *++)
-	     tagname=CXX
-	     eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
-	     ;;
-	   esac ;;
-      esac
-    fi
-    if test -n "$available_tags" && test -z "$tagname"; then
+      "`$echo $CC` "*) ;;
+      *)
         for z in $available_tags; do
           if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
 	    # Evaluate the configuration.
@@ -1582,6 +1562,8 @@ EOF
 #       else
 #         echo "$modename: using $tagname tagged configuration"
         fi
+	;;
+      esac
     fi
 
     if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
@@ -1637,11 +1619,9 @@ EOF
     # Find all interdependent deplibs by searching for libraries
     # that are linked more than once (e.g. -la -lb -la)
     for deplib in $deplibs; do
-      if test "X$duplicate_deps" = "Xyes" ; then
       case "$libs " in
       *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
       esac
-      fi
       libs="$libs $deplib"
     done
 
@@ -1652,14 +1632,12 @@ EOF
       # $postdeps and mark them as special (i.e., whose duplicates are
       # not to be eliminated).
       pre_post_deps=
-      if test "X$duplicate_deps" = "Xyes" ; then
       for pre_post_dep in $predeps $postdeps; do
         case "$pre_post_deps " in
 	*" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
 	esac
 	pre_post_deps="$pre_post_deps $pre_post_dep"
       done
-      fi
       pre_post_deps=
     fi
 
@@ -1883,11 +1861,9 @@ EOF
 	    tmp_libs=
 	    for deplib in $dependency_libs; do
 	      deplibs="$deplib $deplibs"
-              if test "X$duplicate_deps" = "Xyes" ; then
 	      case "$tmp_libs " in
 	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 	      esac
-              fi
 	      tmp_libs="$tmp_libs $deplib"
 	    done
 	  elif test $linkmode != prog && test $linkmode != lib; then
@@ -2010,11 +1986,9 @@ EOF
 	      # or/and link against static libraries
 	      newdependency_libs="$deplib $newdependency_libs"
 	    fi
-	    if test "X$duplicate_deps" = "Xyes" ; then
 	    case "$tmp_libs " in
 	    *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 	    esac
-	    fi
 	    tmp_libs="$tmp_libs $deplib"
 	  done # for deplib
 	  continue
@@ -2313,11 +2287,9 @@ EOF
 	  tmp_libs=
 	  for deplib in $dependency_libs; do
 	    newdependency_libs="$deplib $newdependency_libs"
-	    if test "X$duplicate_deps" = "Xyes" ; then
 	    case "$tmp_libs " in
 	    *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
 	    esac
-	    fi
 	    tmp_libs="$tmp_libs $deplib"
 	  done
 
@@ -2610,7 +2582,7 @@ EOF
 	  ;;
 
 	irix)
-	  major=`expr $current - $age`
+	  major=`expr $current - $age + 1`
 	  verstring="sgi$major.$revision"
 
 	  # Add in all the interfaces that we are compatible with.
@@ -2670,16 +2642,7 @@ EOF
 	# Clear the version info if we defaulted, and they specified a release.
 	if test -z "$vinfo" && test -n "$release"; then
 	  major=
-	  case $version_type in
-	  darwin)
-	    # we can't check for "0.0" in archive_cmds due to quoting
-	    # problems, so we reset it completely
-	    verstring=
-	    ;;
-	  *)
-	    verstring="0.0"
-	    ;;
-	  esac
+	  verstring="0.0"
 	  if test "$need_version" = no; then
 	    versuffix=
 	  else
@@ -5090,7 +5053,7 @@ relink_command=\"$relink_command\""
       fi
 
       # Now prepare to actually exec the command.
-      exec_cmd="\$cmd$args"
+      exec_cmd='"$cmd"$args'
     else
       # Display what would be done.
       if test -n "$shlibpath_var"; then
diff --git a/src/client.c b/src/client.c
index 6be16a83aa0984fb3fe7951c7a6fc0cd760e05de..8c7f45c627af0377f03c762374f9a4162729b45e 100644
--- a/src/client.c
+++ b/src/client.c
@@ -1253,7 +1253,7 @@ clientUpdateAllFrames (int mask)
             wc.y = c->y;
             wc.width = c->width;
             wc.height = c->height;
-            clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, FALSE);
+            clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, FALSE, FALSE);
         }
         if (mask & UPDATE_FRAME)
         {
@@ -2214,7 +2214,7 @@ clientInitPosition (Client * c)
 
 void
 clientConfigure (Client * c, XWindowChanges * wc, int mask,
-    gboolean constrained)
+    gboolean constrained, gboolean configureRequest)
 {
     XConfigureEvent ce;
 
@@ -2293,9 +2293,13 @@ clientConfigure (Client * c, XWindowChanges * wc, int mask,
     {
         frameDraw (c, FALSE, TRUE);
     }
-    if (mask)
+    
+    if ((configureRequest && !(mask & (CWX | CWY | CWWidth | CWHeight))) ||
+        ((mask & (CWX | CWY)) && !(mask & (CWWidth | CWHeight))))
     {
+        DBG ("Sending ConfigureNotify");
         ce.type = ConfigureNotify;
+        ce.display = dpy;
         ce.event = c->window;
         ce.window = c->window;
         ce.x = c->x;
@@ -2400,7 +2404,7 @@ clientGetMWMHints (Client * c, gboolean update)
         wc.y = c->y;
         wc.width = c->width;
         wc.height = c->height;
-        clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, FALSE);
+        clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, FALSE, FALSE);
     }
 }
 
@@ -2500,7 +2504,7 @@ clientGetWMNormalHints (Client * c, gboolean update)
     {
         if ((c->width != wc.width) || (c->height != wc.height))
         {
-            clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, TRUE);
+            clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, TRUE, FALSE);
         }
         else if (CLIENT_FLAG_TEST (c, CLIENT_FLAG_IS_RESIZABLE) != previous_value)
         {
@@ -2924,7 +2928,7 @@ clientFrame (Window w, gboolean startup)
     wc.y = c->y;
     wc.width = c->width;
     wc.height = c->height;
-    clientConfigure (c, &wc, CWX | CWY | CWHeight | CWWidth, FALSE);
+    clientConfigure (c, &wc, CWX | CWY | CWHeight | CWWidth, FALSE, FALSE);
     clientApplyStackList (windows_stack);
     last_raise = c;
 
@@ -3742,13 +3746,13 @@ clientShade (Client * c)
 
     c->win_state |= WIN_STATE_SHADED;
     CLIENT_FLAG_SET (c, CLIENT_FLAG_SHADED);
-    clientSetNetState (c);
     if (CLIENT_FLAG_TEST (c, CLIENT_FLAG_MANAGED))
     {
         wc.width = c->width;
         wc.height = c->height;
-        clientConfigure (c, &wc, CWWidth | CWHeight, FALSE);
+        clientConfigure (c, &wc, CWWidth | CWHeight, FALSE, FALSE);
     }
+    clientSetNetState (c);
 }
 
 void
@@ -3767,13 +3771,13 @@ clientUnshade (Client * c)
     }
     c->win_state &= ~WIN_STATE_SHADED;
     CLIENT_FLAG_UNSET (c, CLIENT_FLAG_SHADED);
-    clientSetNetState (c);
     if (CLIENT_FLAG_TEST (c, CLIENT_FLAG_MANAGED))
     {
         wc.width = c->width;
         wc.height = c->height;
-        clientConfigure (c, &wc, CWWidth | CWHeight, FALSE);
+        clientConfigure (c, &wc, CWWidth | CWHeight, FALSE, FALSE);
     }
+    clientSetNetState (c);
 }
 
 void
@@ -3920,7 +3924,7 @@ clientToggleFullscreen (Client * c)
     }
     if (CLIENT_FLAG_TEST (c, CLIENT_FLAG_MANAGED))
     {
-        clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, FALSE);
+        clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, FALSE, FALSE);
     }
     else
     {
@@ -3929,7 +3933,6 @@ clientToggleFullscreen (Client * c)
         c->height = wc.height;
         c->width = wc.width;
     }
-
     clientSetNetState (c);
     clientSetLayer (c, layer);
 }
@@ -4079,10 +4082,9 @@ clientToggleMaximized (Client * c, int mode)
         wc.height = c->height;
     }
 
-    clientSetNetState (c);
     if (CLIENT_FLAG_TEST (c, CLIENT_FLAG_MANAGED))
     {
-        clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, FALSE);
+        clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, FALSE, FALSE);
     }
     else
     {
@@ -4091,6 +4093,7 @@ clientToggleMaximized (Client * c, int mode)
         c->height = wc.height;
         c->width = wc.width;
     }
+    clientSetNetState (c);
 }
 
 inline gboolean
@@ -4444,7 +4447,7 @@ clientMove_event_filter (XEvent * xevent, gpointer data)
         {
             wc.x = c->x;
             wc.y = c->y;
-            clientConfigure (c, &wc, CWX | CWY, FALSE);
+            clientConfigure (c, &wc, CWX | CWY, FALSE, FALSE);
         }
     }
     else if (passdata->use_keys && xevent->type == KeyRelease)
@@ -4530,7 +4533,7 @@ clientMove_event_filter (XEvent * xevent, gpointer data)
         {
             wc.x = c->x;
             wc.y = c->y;
-            clientConfigure (c, &wc, CWX | CWY, FALSE);
+            clientConfigure (c, &wc, CWX | CWY, FALSE, FALSE);
         }
     }
     else if (!passdata->use_keys && xevent->type == ButtonRelease)
@@ -4678,7 +4681,7 @@ clientMove (Client * c, XEvent * e)
     }
     wc.x = c->x;
     wc.y = c->y;
-    clientConfigure (c, &wc, CWX | CWY, FALSE);
+    clientConfigure (c, &wc, CWX | CWY, FALSE, FALSE);
 
     if (passdata.grab && params.box_move)
     {
@@ -4799,7 +4802,7 @@ clientResize_event_filter (XEvent * xevent, gpointer data)
             wc.y = c->y;
             wc.width = c->width;
             wc.height = c->height;
-            clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, FALSE);
+            clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, FALSE, FALSE);
         }
     }
     else if ((passdata->use_keys) && (xevent->type == KeyRelease))
@@ -4936,7 +4939,7 @@ clientResize_event_filter (XEvent * xevent, gpointer data)
             wc.y = c->y;
             wc.width = c->width;
             wc.height = c->height;
-            clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, FALSE);
+            clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, FALSE, FALSE);
         }
     }
     else if (xevent->type == ButtonRelease)
@@ -5077,7 +5080,7 @@ clientResize (Client * c, int corner, XEvent * e)
     wc.y = c->y;
     wc.width = c->width;
     wc.height = c->height;
-    clientConfigure (c, &wc, CWX | CWY | CWHeight | CWWidth, FALSE);
+    clientConfigure (c, &wc, CWX | CWY | CWHeight | CWWidth, FALSE, FALSE);
 
     if (passdata.grab && params.box_resize)
     {
diff --git a/src/client.h b/src/client.h
index 6087372a4ac8d87d385d9594d0165d2507f4c2c2..bdcbeb9c627329728d0f3de780bc1058ee233042 100644
--- a/src/client.h
+++ b/src/client.h
@@ -232,7 +232,7 @@ void clientUpdateNetState (Client *, XClientMessageEvent *);
 void clientGetNetWmType (Client * c);
 void clientCoordGravitate (Client *, int, int *, int *);
 void clientGravitate (Client *, int);
-void clientConfigure (Client *, XWindowChanges *, int, gboolean);
+void clientConfigure (Client *, XWindowChanges *, int, gboolean, gboolean);
 void clientGetMWMHints (Client *, gboolean);
 void clientGetWMNormalHints (Client *, gboolean);
 void clientClearPixmapCache (Client *);
diff --git a/src/events.c b/src/events.c
index ee802031ebea033f346c329201705a6933612dda..be55cd1151843cc60efd4fccd5e61902b54453c9 100644
--- a/src/events.c
+++ b/src/events.c
@@ -981,7 +981,7 @@ handleConfigureRequest (XConfigureRequestEvent * ev)
                 }
             }
         }
-        clientConfigure (c, &wc, ev->value_mask, constrained);
+        clientConfigure (c, &wc, ev->value_mask, constrained, TRUE);
     }
     else
     {