--- src/ld/MachOWriterExecutable.hpp	2010-04-20 20:41:08.000000000 +0200
+++ src/ld/MachOWriterExecutable.hpp	2012-12-13 20:08:24.000000000 +0100
@@ -10999,7 +10999,7 @@
 	const int64_t bl_sixteenMegLimit = 0x00FFFFFF;
 	if ( fTarget.getContentType() == ObjectFile::Atom::kBranchIsland ) {
 		displacement = getFinalTargetAdress() - this->getAddress();
-		if ( (displacement > bl_sixteenMegLimit) && (displacement < (-bl_sixteenMegLimit)) ) {
+		if ( (displacement > bl_sixteenMegLimit) || (displacement < (-bl_sixteenMegLimit)) ) {
 			displacement = fTarget.getAddress() - this->getAddress();
 		}
 	}
@@ -11017,7 +11017,7 @@
 	const int64_t bl_sixteenMegLimit = 0x00FFFFFF;
 	if ( fTarget.getContentType() == ObjectFile::Atom::kBranchIsland ) {
 		displacement = getFinalTargetAdress() - this->getAddress();
-		if ( (displacement > bl_sixteenMegLimit) && (displacement < (-bl_sixteenMegLimit)) ) {
+		if ( (displacement > bl_sixteenMegLimit) || (displacement < (-bl_sixteenMegLimit)) ) {
 			displacement = fTarget.getAddress() - this->getAddress();
 		}
 	}
