--- tools/darwin.jam.orig	2009-11-01 01:06:46.000000000 -0400
+++ tools/darwin.jam	2009-11-01 01:25:48.000000000 -0400
@@ -41,6 +41,11 @@
     {
         flags darwin.compile.c++ OPTIONS $(condition) : -fcoalesce-templates ;
     }
+    # - GCC 4.2 and higher in Darwin does not have -Wno-long-double.
+    if $(gccversion) < "4.2.0"
+    {
+        flags darwin.compile OPTIONS $(condition) : -Wno-long-double ;
+    }
 
     gcc.init-link-flags darwin darwin $(condition) ;
     
@@ -50,7 +55,7 @@
 feature framework : : free ;
 
 flags darwin.compile OPTIONS <link>shared : -dynamic ;
-flags darwin.compile OPTIONS : -Wno-long-double -no-cpp-precomp  ;
+flags darwin.compile OPTIONS : -no-cpp-precomp  ;
 
 flags darwin.link FRAMEWORK <framework> ;
 
@@ -63,9 +68,17 @@
 # set up the -F option to include the paths to any frameworks used.
 local rule prepare-framework-path ( target + )
 {
+    # The -framework option only takes basename of the framework.
+    # The -F option specifies the directories where a framework
+    # is searched for.  So, if we find <framework> feature
+    # with some path, we need to generate property -F option.
     local framework-path = [ on $(target) return $(FRAMEWORK:D) ] ;
     
-    FRAMEWORK_PATH on $(target) += -F$(framework-path) ;
+    # Be sure to generate no -F if there's no path.
+    if $(framework-path) != ""
+    {
+        FRAMEWORK_PATH on $(target) += -F$(framework-path) ;
+    }
 }
 
 rule link
