Index: tools/build/v2/tools/mpi.jam
===================================================================
--- tools/build/v2/tools/mpi.jam        (revision 57744)
+++ tools/build/v2/tools/mpi.jam        (working copy)
@@ -156,14 +156,27 @@
         # into a feature.
         local match = [ MATCH "^(-.)(.*)" : $(cmdline) ] ;
         local matched ;
-        if $(match) && $(match[2]) {
+        if $(match) && $(match[2]) {
            local prefix = $(match[1]) ;
            if $(feature_kinds$(prefix)) {
                local name = $(feature_kinds$(prefix)) ;
                local add = [ add_feature $(prefix) $(name) $(cmdline) ] ;

                if $(add) {
-                  result += $(add[1]) ;
+
+                  if $(add[1]) = <find-shared-library>pthread
+                  {
+                      # Uhm. It's not really nice that this MPI implementation
+                      # uses -lpthread as opposed to -pthread. We do want to
+                      # set <threading>multi, instead of -lpthread.
+                      result += "<threading>multi" ;
+                      MPI_EXTRA_REQUIREMENTS += "<threading>multi" ;
+                  }
+                  else
+                  {
+                      result += $(add[1]) ;
+                  }
+
                   cmdline = $(add[2]) ;
                   matched = yes ;
                }

