diff --git a/build/lbuild b/build/lbuild
index 2485023ecc3d80050d695e6f2eb4beeff678156c..2c2340d82b6c256fa8e2ad6dfd80ecf958803655 100755
--- a/build/lbuild
+++ b/build/lbuild
@@ -510,7 +510,7 @@ load_target()
 
     BUILD_ARCHS=
     for arch in $(uniqify "$ALL_ARCHS") ; do
-        if [ -z "$TARGET_ARCHS" ] || echo "$TARGET_ARCHS" | grep "$arch" >/dev/null 2>/dev/null ; then
+        if [ -z "$TARGET_ARCHS" ] || [[ $TARGET_ARCHES =~ (\ |^)$arch(\ |$) ]] ; then
             BUILD_ARCHS="$BUILD_ARCHS $arch"
         fi
     done
diff --git a/build/lmake b/build/lmake
index 0acce675d46771aa631f44bb553067d1e8e4400f..b917687e90c5c72b1b1cf5d00d703d05e7b11c36 100755
--- a/build/lmake
+++ b/build/lmake
@@ -344,9 +344,13 @@ patch_kernel()
 set_make()
 {
     MAKE="make -s"
-    if [ "$CC" ] ; then
-	MAKE_CC="CC=$CC"
-    fi
+    [ "$CC" ] && {
+        if [ "$TARGET_ARCH" == "ppc64" ] ; then
+                MAKE_CC="CC=$CC -m64"
+        else 
+                MAKE_CC="CC=$CC"
+        fi
+    }
     if [ "$ARCH" ] ; then
 	MAKE_ARCH="$MAKE ARCH=$ARCH"
     else
diff --git a/build/lustre-kernel-2.4.spec.in b/build/lustre-kernel-2.4.spec.in
index b296702715ec2b22e77f7f23a145d96183e20564..804e65cc52e2b2d0e924b3569817fe787598e00e 100644
--- a/build/lustre-kernel-2.4.spec.in
+++ b/build/lustre-kernel-2.4.spec.in
@@ -154,7 +154,7 @@ Release: %{release}%{?targetboard:%{targetboard}}%{?debuglevel_1:.dbg}
 %define KVERREL %{PACKAGE_VERSION}%{kextraverdelim}%{kextraver}%{?targetboard:%{targetboard}}%{?debuglevel_1:.dbg}
 License: GPL
 Group: System Environment/Kernel
-ExclusiveArch: %{all_x86} x86_64 ia64 ppc
+ExclusiveArch: %{all_x86} x86_64 ia64 ppc ppc64
 ExclusiveOS: Linux
 Obsoletes: kernel-modules, kernel-sparc
 Provides: kernel = %{version}