diff --git a/configure.ac b/configure.ac
index 89b97d739ea0d82eabc59a2c38b2e5400995a035..08d261363ff3cdef06e0ec1fb8738cfe97fc6dd8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -222,7 +222,7 @@ dnl Must use $CXX, not $MPI_CXX, here
 
 CXX="$CXX $MPI_CXXFLAGS"
 LIBS="$LIBS $MPI_LDFLAGS"
-AC_CHECK_FUNCS([rts_get_personality ompi_comm_free])
+AC_CHECK_FUNCS([rts_get_personality ompi_comm_free MPI_Comm_create_errhandler])
 
 AC_MSG_CHECKING([for MPI::Init_thread method])
 ac_have_cxx_mpi_init_thread=no
@@ -288,6 +288,12 @@ else
   MUSIC_HAVE_LONG_LONG=0
 fi
 
+if test $ac_cv_func_MPI_Comm_create_errhandler = yes; then
+  MUSIC_HAVE_MPI_COMM_CREATE_ERRHANDLER=1
+else
+  MUSIC_HAVE_MPI_COMM_CREATE_ERRHANDLER=0
+fi
+
 if test "$prefix" = NONE; then
    PKGDATADIR=`eval echo $ac_default_prefix/share/$PACKAGE-$PACKAGE_VERSION`
 else
@@ -378,6 +384,7 @@ AC_SUBST(MPI_CFLAGS)
 AC_SUBST(MPI_LDFLAGS)
 AC_SUBST(MUSIC_HAVE_SIZE_T)
 AC_SUBST(MUSIC_HAVE_LONG_LONG)
+AC_SUBST(MUSIC_HAVE_MPI_COMM_CREATE_ERRHANDLER)
 AC_SUBST(MUSIC_USE_MPI)
 AC_SUBST(MUSIC_ISENDWAITALL)
 AC_SUBST(MUSIC_ANYSOURCE)
diff --git a/ros/adapters/Makefile.am b/ros/adapters/Makefile.am
index 4e3817e1be22666bd32f8cf9d7c63e5bc7d88046..05b33f66f068b7dd1dd314e32c3bb165a33ddb1c 100644
--- a/ros/adapters/Makefile.am
+++ b/ros/adapters/Makefile.am
@@ -2,10 +2,10 @@ bin_PROGRAMS = connect_adapter ros_sensor_adapter ros_command_adapter
 
 
 # look for ros in the common paths
-LD_ROS_PATH = -L/opt/ros/kinetic/lib/ \
+LD_ROS_PATH = -L/opt/ros/melodic/lib/ \
 			  -L/opt/ros/jade/lib/
 
-INC_ROS_PATH = -I/opt/ros/kinetic/include \
+INC_ROS_PATH = -I/opt/ros/melodic/include \
 			   -I/opt/ros/jade/include
 
 AM_CXXFLAGS = $(INC_ROS_PATH) -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_builddir)/src @MPI_CXXFLAGS@
@@ -13,7 +13,6 @@ AM_LDFLAGS = $(top_builddir)/mpidep/libmpidep.la @MPI_LDFLAGS@ \
 			 $(top_builddir)/src/libmusic.la \
 			 $(top_builddir)/src/libmusic-c.la \
 			 $(LD_ROS_PATH) 
-						
 
 connect_adapter_SOURCES = connect.h connect.cpp 
 connect_adapter_LDADD = -lgsl -lgslcblas -ljsoncpp
diff --git a/src/music/music-config.hh.in b/src/music/music-config.hh.in
index 6a5cc72a3f8d0fb9372793522e723234c48153c3..5998aee14ba8fb4be69b45c3ae9e2fb5e61509ca 100644
--- a/src/music/music-config.hh.in
+++ b/src/music/music-config.hh.in
@@ -2,7 +2,7 @@
 
 /*
  *  This file is part of MUSIC.
- *  Copyright (C) 2008 INCF
+ *  Copyright (C) 2008, 2019 INCF
  *
  *  MUSIC is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -20,6 +20,7 @@
 
 #define MUSIC_HAVE_SIZE_T @MUSIC_HAVE_SIZE_T@
 #define MUSIC_HAVE_LONG_LONG @MUSIC_HAVE_LONG_LONG@
+#define MUSIC_HAVE_MPI_COMM_CREATE_ERRHANDLER @MUSIC_HAVE_MPI_COMM_CREATE_ERRHANDLER@
 #define MUSIC_USE_MPI @MUSIC_USE_MPI@
 #define MUSIC_ISENDWAITALL @MUSIC_ISENDWAITALL@
 #define MUSIC_ANYSOURCE @MUSIC_ANYSOURCE@
diff --git a/testsuite/sanitytests/multiport.cc b/testsuite/sanitytests/multiport.cc
index 00fbcc3f85151556dedfca9b9a939b4f26f2058f..118f12e9e324144424eabecc54ed7e2bf7a3c2b1 100644
--- a/testsuite/sanitytests/multiport.cc
+++ b/testsuite/sanitytests/multiport.cc
@@ -1,6 +1,6 @@
 /*
  *  This file is part of MUSIC.
- *  Copyright (C) 2008, 2009 INCF
+ *  Copyright (C) 2008, 2009, 2019 INCF
  *
  *  MUSIC is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -377,7 +377,11 @@ main (int argc, char *argv[])
 {
   MUSIC::Setup* setup = new MUSIC::Setup (argc, argv);
   MPI_Errhandler errh;
+#if MUSIC_HAVE_MPI_COMM_CREATE_ERRHANDLER
+  MPI_Comm_create_errhandler (errhandler, &errh);
+#else
   MPI_Errhandler_create (errhandler, &errh);
+#endif
   MPI_Comm_set_errhandler (MPI_COMM_WORLD, errh);
   
   MPI::Intracomm comm = setup->communicator ();