diff --git a/maestro/ofi.c b/maestro/ofi.c
index 2996b0306a1a6d942db4315866fbad24bd3f6bbd..53d6f269c440c713f1115fb3c75977f9233ae8bd 100644
--- a/maestro/ofi.c
+++ b/maestro/ofi.c
@@ -2612,8 +2612,12 @@ mstro_ofi__submit_component_descriptor_read(struct mstro_endpoint *my_ep,
           }
 
   assert(ctx->msg==NULL);
-  assert(my_ep->peer_info_mr!=NULL); /* incoming buffer has been registered at local endpoint set creation */
-  void * local_buf_mr_desc = fi_mr_desc(my_ep->peer_info_mr);
+  /* buffer may have been registered at local endpoint set creation if FI_MR_LOCAL was required*/
+  void * local_buf_mr_desc = NULL;
+  if(my_ep->peer_info_mr!=NULL)
+  {
+	local_buf_mr_desc = fi_mr_desc(my_ep->peer_info_mr);
+  }
   DEBUG("FI_READ with ctx %p\n", ctx);
 
   int num_retries = 3;