Only in openmpi-1.3.2: htons.patch
diff -crB openmpi-1.3.2/ompi/mca/btl/tcp/btl_tcp_component.c openmpi-1.3.2.patched/ompi/mca/btl/tcp/btl_tcp_component.c
*** openmpi-1.3.2/ompi/mca/btl/tcp/btl_tcp_component.c	2008-12-02 19:50:43.000000000 +0100
--- openmpi-1.3.2.patched/ompi/mca/btl/tcp/btl_tcp_component.c	2009-07-06 10:44:38.000000000 +0200
***************
*** 584,592 ****
  
          for( index = 0;  index < range; index++ ) {
  #if OPAL_WANT_IPV6
!             ((struct sockaddr_in6*) &inaddr)->sin6_port = port + index;
  #else
!             ((struct sockaddr_in*) &inaddr)->sin_port = port + index;
  #endif  /* OPAL_WANT_IPV6 */
              if(bind(sd, (struct sockaddr*)&inaddr, addrlen) < 0) {
                  if( (EADDRINUSE == opal_socket_errno) || (EADDRNOTAVAIL == opal_socket_errno) ) {
--- 584,592 ----
  
          for( index = 0;  index < range; index++ ) {
  #if OPAL_WANT_IPV6
!             ((struct sockaddr_in6*) &inaddr)->sin6_port = htons(port + index);
  #else
!             ((struct sockaddr_in*) &inaddr)->sin_port = htons(port + index);
  #endif  /* OPAL_WANT_IPV6 */
              if(bind(sd, (struct sockaddr*)&inaddr, addrlen) < 0) {
                  if( (EADDRINUSE == opal_socket_errno) || (EADDRNOTAVAIL == opal_socket_errno) ) {
diff -crB openmpi-1.3.2/orte/mca/oob/tcp/oob_tcp.c openmpi-1.3.2.patched/orte/mca/oob/tcp/oob_tcp.c
*** openmpi-1.3.2/orte/mca/oob/tcp/oob_tcp.c	2008-11-04 21:56:45.000000000 +0100
--- openmpi-1.3.2.patched/orte/mca/oob/tcp/oob_tcp.c	2009-07-06 10:42:53.000000000 +0200
***************
*** 603,611 ****
      
      for (index = 0;  index < range; index++ ) {
          if (AF_INET == af_family) {
!             ((struct sockaddr_in*) &inaddr)->sin_port = port + index;
          } else if (AF_INET6 == af_family) {
!             ((struct sockaddr_in6*) &inaddr)->sin6_port = port + index;
          } else {
              return ORTE_ERROR;
          }
--- 603,611 ----
      
      for (index = 0;  index < range; index++ ) {
          if (AF_INET == af_family) {
!             ((struct sockaddr_in*) &inaddr)->sin_port = htons(port + index);
          } else if (AF_INET6 == af_family) {
!             ((struct sockaddr_in6*) &inaddr)->sin6_port = htons(port + index);
          } else {
              return ORTE_ERROR;
          }
