diff --git a/base/inc/RConfig.h b/base/inc/RConfig.h
index 867b18fac02b363b017cd98c8f366cefd87bba27..bf3e5a149f63dee2acbee141bfbeccea3596d2f5 100644
--- a/base/inc/RConfig.h
+++ b/base/inc/RConfig.h
@@ -1,4 +1,4 @@
-/* @(#)root/base:$Name:  $:$Id: RConfig.h,v 1.81 2005/04/15 17:26:09 rdm Exp $ */
+/* @(#)root/base:$Name:  $:$Id: RConfig.h,v 1.82 2005/04/18 16:05:48 rdm Exp $ */
 
 /*************************************************************************
  * Copyright (C) 1995-2002, Rene Brun and Fons Rademakers.               *
@@ -299,6 +299,9 @@
 #   if defined(__ppc64__)
 #      define R__B64      /* enable when 64 bit machine */
 #   endif
+#   if defined(__i386__)
+#      define R__BYTESWAP
+#   endif
 #endif
 
 #ifdef _HIUX_SOURCE
diff --git a/config/root-config.in b/config/root-config.in
index 993b4d45c18fd24e7551a6a90c7c766accd00021..cf946c3d089833a84d34128e2b9d638b946b2221 100755
--- a/config/root-config.in
+++ b/config/root-config.in
@@ -286,23 +286,13 @@ macosx)
    fi
    ;;
 macosx64)
-   # MacOS X with gcc (GNU cc v3.1) and possible fink (fink.sf.net)
+   # MacOS X with gcc (GNU cc v4.x) in 64 bit mode
    macosx_minor=`sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2`
    # cannot find the one linked to libGraf if relocated after built
    rootlibs="$rootlibs -lfreetype"
-   if [ $macosx_minor -le 3 ]; then
-      finkdir=`which fink 2>&1 | sed -ne "s/\/bin\/fink//p"`
-      auxcflags=`[ -d ${finkdir}/include ] && echo -I${finkdir}/include`
-      auxcflags="-m64 -Wno-long-double $auxcflags"
-      auxldflags="-m64"
-      auxlibs="-lm `[ -d ${finkdir}/lib ] && echo -L${finkdir}/lib` -ldl"
-      forcelibs=$rootulibs
-      forceglibs=$rootuglibs
-   else
-      auxcflags="-m64 -Wno-long-double"
-      auxldflags="-m64"
-      auxlibs="-lm -ldl"
-   fi
+   auxcflags="-m64 -Wno-long-double"
+   auxldflags="-m64"
+   auxlibs="-lm -ldl"
    ;;
 macosxxlc)
    # MacOS X with IBM xl compiler and possible fink (fink.sf.net)
diff --git a/configure b/configure
index b174b6641e62e1031c0e572934229bb5d8c8e2a3..ffc275f1467e414e2342217ae89ffdce35007d6d 100755
--- a/configure
+++ b/configure
@@ -271,22 +271,28 @@ check_library() {
 
     echo $found_dir
     unset libs
-    unset slibs
     unset libdirs
 
-    if test "x$found_dir" = "xno" || test "$found_lib" = "xno" ; then
+    if test "x$found_dir" = "xno" || test "x$found_lib" = "xno" ; then
 	found_dir=""
 	found_lib=""
     else
 	flib=""
+        maclib=""
 	for i in $lib ; do
 	    for ext in .a .lib "" ; do     # lib without extension for MacOS X
 		if test "x$found_lib" = "x$i$ext" ; then
 		    flib=$i$ext
+                    if test "x$ext" = "x" ; then
+                        maclib="yes"
+                    fi
+                    break 2
 		fi
 	    done
 	done
-	if test "x$found_lib" = "x$flib" ; then
+
+	if (test "x$found_lib" = "x$flib" && test "x$shared" = "xno") || \
+           test "x$maclib" = "xyes" ; then
 	    found_lib=${found_dir}/${found_lib}
 	    found_dir=""
 	else
@@ -311,8 +317,10 @@ check_library() {
         fi
     fi
     unset shared
+    unset slibs
     unset lib
     unset flib
+    unset maclib
     unset libdirl
 }
 
@@ -370,7 +378,7 @@ check_header()  {
 
     echo $found_dir
 
-    if test "x$found_hdr" = "xno" || test "$found_dir" = "xno" ; then
+    if test "x$found_hdr" = "xno" || test "x$found_dir" = "xno" ; then
 	found_hdr=""
 	found_dir=""
     fi
@@ -532,6 +540,7 @@ guess_architecture () {
         openbsd*:*:*)          arch=openbsd         ;;
         lynx:*:*)              arch=lynxos          ;;
         darwin:power*:*)       arch=macosx          ;;
+        darwin:x86*:*)         arch=macosx          ;;
         irix*:sgi*:*)          arch=sgicc           ;;
         sunos:sun*:6*)         arch=solarisCC5      ;;
         sunos:sun*:5*)         arch=solarisCC5      ;;
diff --git a/test/Makefile.arch b/test/Makefile.arch
index 3e233eba0e2128a82e274a8b01087dba696b7fca..a608e96e2c8579c2b70dcf00c4e1903eb9ccacda 100644
--- a/test/Makefile.arch
+++ b/test/Makefile.arch
@@ -448,15 +448,16 @@ endif
 
 ifeq ($(ARCH),macosx64)
 # MacOS X >= 10.4 with gcc 64 bit mode (GNU gcc 4.*)
+# Only specific option (-m64) comes from root-config
 MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
 CXX           = c++
-CXXFLAGS      = -m64 -O2 -pipe -Wall -W -Woverloaded-virtual
-LDFLAGS       = -m64 -O2 -bind_at_load
+CXXFLAGS      = -O2 -pipe -Wall -W -Woverloaded-virtual
+LDFLAGS       = -O2 -bind_at_load
 # The SOFLAGS will be used to create the .dylib,
 # the .so will be created separately
 DllSuf        = dylib
 LD            = MACOSX_DEPLOYMENT_TARGET=10.4 c++
-SOFLAGS       = -m64 -dynamiclib -single_module -undefined dynamic_lookup
+SOFLAGS       = -dynamiclib -single_module -undefined dynamic_lookup
 endif
 
 ifeq ($(ARCH),macosxxlc)
diff --git a/unix/src/TUnixSystem.cxx b/unix/src/TUnixSystem.cxx
index 180f260c56d1a754403a12f0f08f210ffb8bfffb..a3811310764e188326c4a9e973d04873340646af 100644
--- a/unix/src/TUnixSystem.cxx
+++ b/unix/src/TUnixSystem.cxx
@@ -1,4 +1,4 @@
-// @(#)root/unix:$Name:  $:$Id: TUnixSystem.cxx,v 1.132 2005/05/02 10:59:04 rdm Exp $
+// @(#)root/unix:$Name:  $:$Id: TUnixSystem.cxx,v 1.133 2005/05/03 13:17:55 rdm Exp $
 // Author: Fons Rademakers   15/09/95
 
 /*************************************************************************
@@ -245,7 +245,7 @@ extern "C" {
 #include <fenv.h>
 #endif
 
-#if defined(R__MACOSX) && !defined(__xlC__)
+#if defined(R__MACOSX) && !defined(__xlC__) && !defined(__i386__)
 #include <fenv.h>
 #include <signal.h>
 #include <ucontext.h>
@@ -614,9 +614,9 @@ Int_t TUnixSystem::GetFPEMask()
    fegetenv(&oldenv);
    fesetenv(&oldenv);
  #ifdef __alpha__
-	 ULong_t oldmask = ~oldenv;
+   ULong_t oldmask = ~oldenv;
  #elif __ia64__
-    Int_t oldmask = ~oldenv;
+   Int_t oldmask = ~oldenv;
  #else
    Int_t oldmask = ~oldenv.__control_word;
  #endif
@@ -629,7 +629,7 @@ Int_t TUnixSystem::GetFPEMask()
 #endif
 #endif
 
-#if defined(R__MACOSX) && !defined(__xlC__)
+#if defined(R__MACOSX) && !defined(__xlC__) && !defined(__i386__)
    Long64_t oldmask;
    fegetenvd(oldmask);
 
@@ -649,6 +649,8 @@ Int_t TUnixSystem::SetFPEMask(Int_t mask)
    // Set which conditions trigger a floating point exception.
    // Return the previous set of conditions.
 
+   if (mask) { }  // use mask to avoid warning
+
    Int_t old = GetFPEMask();
 
 #if defined(R__LINUX) && !defined(__powerpc__)
@@ -671,7 +673,7 @@ Int_t TUnixSystem::SetFPEMask(Int_t mask)
 #endif
 #endif
 
-#if defined(R__MACOSX) && !defined(__xlC__)
+#if defined(R__MACOSX) && !defined(__xlC__) && !defined(__i386__)
    Int_t newm = 0;
    if (mask & kInvalid  )   newm |= FE_ENABLE_INVALID;
    if (mask & kDivByZero)   newm |= FE_ENABLE_DIVBYZERO;
diff --git a/xrootd/src/xrootd-20050328-0656.src.tgz b/xrootd/src/xrootd-20050328-0656.src.tgz
index 2520bc1b958cddb1e702123bb9a781dc862cd7ac..de416f4c7f85168f98b7fd0ba064d10f9c875491 100644
Binary files a/xrootd/src/xrootd-20050328-0656.src.tgz and b/xrootd/src/xrootd-20050328-0656.src.tgz differ