diff --git a/include/maestro/i_statistics.h b/include/maestro/i_statistics.h
index 8146c1a58d28882a12f70c20097b52d86c21b7e1..ade827fb109e3557789c753543baee692c282cf9 100644
--- a/include/maestro/i_statistics.h
+++ b/include/maestro/i_statistics.h
@@ -186,10 +186,10 @@ mstro_stats_report_csv(FILE *dst);
 
 
 /* OFI */
-#define MSTRO_STATS_L_PC_VSM_IN                   "pc-num-vsm-in"
-#define MSTRO_STATS_L_PC_VSM_OUT                  "pc-num-vsm-out"
-#define MSTRO_STATS_L_PM_VSM_IN                   "pm-num-vsm-in"
-#define MSTRO_STATS_L_PM_VSM_OUT                  "pm-num-vsm-out"
+#define MSTRO_STATS_L_PC_NUM_VSM_IN               "pc-num-vsm-in"
+#define MSTRO_STATS_L_PC_NUM_VSM_OUT              "pc-num-vsm-out"
+#define MSTRO_STATS_L_PM_NUM_VSM_IN               "pm-num-vsm-in"
+#define MSTRO_STATS_L_PM_NUM_VSM_OUT              "pm-num-vsm-out"
 
   
 /**@}*/
diff --git a/maestro/pool_client.c b/maestro/pool_client.c
index b4ea5debce65251f2c22e75252516ed50ebd7598..a90c09df347682b1cae402a19e2f547e67f60c42 100644
--- a/maestro/pool_client.c
+++ b/maestro/pool_client.c
@@ -8,6 +8,7 @@
 #include "../transport/transport.h"
 #include "transport/transport_rdma.h"
 #include "maestro/i_ofi.h"
+#include "maestro/i_statistics.h"
 #include "i_subscription_registry.h"
 
 #include <unistd.h>
@@ -760,6 +761,7 @@ mstro_pc_handle_msg(const struct mstro_msg_envelope *envelope,
   }
   
   if(msg->opts && msg->opts->vsm_data!=NULL) {
+    mstro_stats_add_counter(MSTRO_STATS_CAT_OFI, MSTRO_STATS_L_PC_NUM_VSM_IN, 1);
     ERR("VSM, Unimplemented\n");
     status=MSTRO_UNIMPL;
     goto BAILOUT;
diff --git a/maestro/pool_manager.c b/maestro/pool_manager.c
index fc50109440f40cf4244a164878f1946c2858328b..28b82caca630c11764b6bcc932b946b2005f25a3 100644
--- a/maestro/pool_manager.c
+++ b/maestro/pool_manager.c
@@ -2519,6 +2519,7 @@ mstro_pm_handle_msg(const struct mstro_msg_envelope *envelope,
   }
   
   if(msg->opts && msg->opts->vsm_data!=NULL) {
+    mstro_stats_add_counter(MSTRO_STATS_CAT_OFI, MSTRO_STATS_L_PM_NUM_VSM_IN, 1);
     ERR("VSM, Unimplemented\n");
     mstro_pm__msg_free(msg);
     status=MSTRO_UNIMPL;
diff --git a/maestro/pool_manager_protocol.c b/maestro/pool_manager_protocol.c
index 2f423ef279b701f8e9ef1fd1dfb42404ad888dd4..0ffcfdaa65c568d7f972809a855a3b0fe645d1ee 100644
--- a/maestro/pool_manager_protocol.c
+++ b/maestro/pool_manager_protocol.c
@@ -36,6 +36,7 @@
 #include "maestro/i_globals.h"
 
 #include "maestro/i_ofi.h"
+#include "maestro/i_statistics.h"
 
 #include <assert.h>
 #include <stdint.h>
@@ -126,6 +127,11 @@ mstro_pmp_send_nowait(mstro_app_id target, const Mstro__Pool__MstroMsg *msg)
     INFO("Message %s packed size %zu requires fragmentation\n",
          msg->base.descriptor->name, len);
     ERR("VSMs unimplemented\n");
+    if(target==MSTRO_APP_ID_MANAGER && !g_mstro_pm_attached) {
+      mstro_stats_add_counter(MSTRO_STATS_CAT_OFI, MSTRO_STATS_L_PC_NUM_VSM_OUT, 1);
+    } else {
+      mstro_stats_add_counter(MSTRO_STATS_CAT_OFI, MSTRO_STATS_L_PM_NUM_VSM_OUT, 1);
+    }
     return MSTRO_UNIMPL;
   }
 
diff --git a/maestro/statistics.c b/maestro/statistics.c
index 8e7b3a148600d742b18b3bf72ee561779259e959..8b3a364d6c1cab7e1beaba3af333a7587714f6d9 100644
--- a/maestro/statistics.c
+++ b/maestro/statistics.c
@@ -958,16 +958,16 @@ static struct {
     MSTRO_STATS_COLL_COUNTER },    
   /* OFI */
   { MSTRO_STATS_CAT_OFI,
-    MSTRO_STATS_L_PC_VSM_IN,
+    MSTRO_STATS_L_PC_NUM_VSM_IN,
     MSTRO_STATS_COLL_COUNTER },
   { MSTRO_STATS_CAT_OFI,
-    MSTRO_STATS_L_PC_VSM_OUT,
+    MSTRO_STATS_L_PC_NUM_VSM_OUT,
     MSTRO_STATS_COLL_COUNTER },
   { MSTRO_STATS_CAT_OFI,
-    MSTRO_STATS_L_PM_VSM_IN,
+    MSTRO_STATS_L_PM_NUM_VSM_IN,
     MSTRO_STATS_COLL_COUNTER },
   { MSTRO_STATS_CAT_OFI,
-    MSTRO_STATS_L_PM_VSM_OUT,
+    MSTRO_STATS_L_PM_NUM_VSM_OUT,
     MSTRO_STATS_COLL_COUNTER },
 
 };