diff --git a/opal/mca/btl/openib/btl_openib_async.c b/opal/mca/btl/openib/btl_openib_async.c
index 64dad4f3aa..7f6ec499d9 100644
--- a/opal/mca/btl/openib/btl_openib_async.c
+++ b/opal/mca/btl/openib/btl_openib_async.c
@@ -4,7 +4,7 @@
  * Copyright (c) 2007-2013 Cisco Systems, Inc.  All rights reserved.
  * Copyright (c) 2006-2007 Voltaire All rights reserved.
  * Copyright (c) 2009-2010 Oracle and/or its affiliates.  All rights reserved
- * Copyright (c) 2013      Los Alamos National Security, LLC. All rights
+ * Copyright (c) 2013-2015 Los Alamos National Security, LLC. All rights
  *                         reserved.
  * Copyright (c) 2014      Intel, Inc. All rights reserved.
  * Copyright (c) 2014      Bull SAS.  All rights reserved.
@@ -170,9 +170,10 @@ static int btl_openib_async_commandh(struct mca_btl_openib_async_poll *devices_p
 {
     struct pollfd *async_pollfd_tmp;
     mca_btl_openib_async_cmd_t cmd;
-    int fd,flags,j;
+    int fd,flags,j,ret;
     /* Got command from main thread */
-    if (read(devices_poll->async_pollfd[0].fd, &cmd, sizeof(mca_btl_openib_async_cmd_t)) < 0) {
+    ret = read(devices_poll->async_pollfd[0].fd, &cmd, sizeof(mca_btl_openib_async_cmd_t));
+    if (sizeof(mca_btl_openib_async_cmd_t) != ret) {
         BTL_ERROR(("Read failed [%d]",errno));
         return OPAL_ERROR;
     }
@@ -328,7 +329,6 @@ static int btl_openib_async_deviceh(struct mca_btl_openib_async_poll *devices_po
     int j;
     mca_btl_openib_device_t *device = NULL;
     struct ibv_async_event event;
-    bool xrc_event = false;
     int event_type;
 
     /* We need to find correct device and process this event */
@@ -356,6 +356,7 @@ static int btl_openib_async_deviceh(struct mca_btl_openib_async_poll *devices_po
         /* is it XRC event ?*/
 #if OPAL_HAVE_CONNECTX_XRC_DOMAINS
 #else
+        bool xrc_event = false;
         if (IBV_XRC_QP_EVENT_FLAG & event.event_type) {
             xrc_event = true;
             /* Clean the bitnd handel as usual */
@@ -368,14 +369,14 @@ static int btl_openib_async_deviceh(struct mca_btl_openib_async_poll *devices_po
                 BTL_ERROR(("Alternative path migration event reported"));
                 if (APM_ENABLED) {
                     BTL_ERROR(("Trying to find additional path..."));
-                    if (!xrc_event)
-                        mca_btl_openib_load_apm(event.element.qp,
-                                qp2endpoint(event.element.qp, device));
 #if HAVE_XRC && !OPAL_HAVE_CONNECTX_XRC_DOMAINS
-                    else
+                    if (xrc_event)
                         mca_btl_openib_load_apm_xrc_rcv(event.element.xrc_qp_num,
                                 xrc_qp2endpoint(event.element.xrc_qp_num, device));
+                    else
 #endif
+                        mca_btl_openib_load_apm(event.element.qp,
+                                qp2endpoint(event.element.qp, device));
                 }
                 break;
             case IBV_EVENT_DEVICE_FATAL:
@@ -383,6 +384,7 @@ static int btl_openib_async_deviceh(struct mca_btl_openib_async_poll *devices_po
                 device->got_fatal_event = true;
                 /* It is not critical to protect the counter */
                 OPAL_THREAD_ADD32(&mca_btl_openib_component.error_counter, 1);
+                /* fall through */
             case IBV_EVENT_CQ_ERR:
             case IBV_EVENT_QP_FATAL:
               if (event_type == IBV_EVENT_QP_FATAL) {
@@ -415,15 +417,13 @@ static int btl_openib_async_deviceh(struct mca_btl_openib_async_poll *devices_po
                 opal_show_help("help-mpi-btl-openib.txt", "of error event",
                     true,opal_process_info.nodename, (int)getpid(),
                     event_type,
-                    openib_event_to_str((enum ibv_event_type)event_type),
-                    xrc_event ? "true" : "false");
+                    openib_event_to_str((enum ibv_event_type)event_type));
                 break;
             case IBV_EVENT_PORT_ERR:
                 opal_show_help("help-mpi-btl-openib.txt", "of error event",
                     true,opal_process_info.nodename, (int)getpid(),
                     event_type,
-                    openib_event_to_str((enum ibv_event_type)event_type),
-                    xrc_event ? "true" : "false");
+                    openib_event_to_str((enum ibv_event_type)event_type));
                 /* Set the flag to indicate port error */
                 device->got_port_event = true;
                 OPAL_THREAD_ADD32(&mca_btl_openib_component.error_counter, 1);
@@ -451,7 +451,7 @@ static int btl_openib_async_deviceh(struct mca_btl_openib_async_poll *devices_po
             default:
                 opal_show_help("help-mpi-btl-openib.txt", "of unknown event",
                         true,opal_process_info.nodename, (int)getpid(),
-                        event_type, xrc_event ? "true" : "false");
+                        event_type);
         }
         ibv_ack_async_event(&event);
     } else {
@@ -545,7 +545,7 @@ int btl_openib_async_command_done(int exp)
 {
     int comp;
     if (read(mca_btl_openib_component.async_comp_pipe[0], &comp,
-                sizeof(int)) < 0){
+             sizeof(int)) < (int) sizeof (int)){
         BTL_ERROR(("Failed to read from pipe"));
         return OPAL_ERROR;
     }
diff --git a/opal/mca/btl/openib/btl_openib_endpoint.c b/opal/mca/btl/openib/btl_openib_endpoint.c
index c117acd1c2..540c3902c0 100644
--- a/opal/mca/btl/openib/btl_openib_endpoint.c
+++ b/opal/mca/btl/openib/btl_openib_endpoint.c
@@ -689,7 +689,7 @@ static void mca_btl_openib_endpoint_credits(
 
     /* we don't acquire a WQE for credit message - so decrement.
      * Note: doing it for QP used for credit management */
-    qp_get_wqe(ep, des->order);
+    (void) qp_get_wqe(ep, des->order);
 
     if(check_send_credits(ep, qp) || check_eager_rdma_credits(ep))
         mca_btl_openib_endpoint_send_credits(ep, qp);