diff --git a/compiler/2014/C_CodeGen.jrag b/compiler/2014/C_CodeGen.jrag
index b762e588c3278555ad9d52685816a8b1b02bb084..0b68620d45d45e8a25e37cc51f6949c46cfe062a 100644
--- a/compiler/2014/C_CodeGen.jrag
+++ b/compiler/2014/C_CodeGen.jrag
@@ -1038,7 +1038,7 @@ aspect C_Encoder {
 		env.prefix + getName() + 
 		", (labcomm2014_encoder_function)encode_" + 
                 env.prefix + getName() +
-		(!isVoid()?", v":", NULL")+");");
+		(!isVoid()?", v":", labcomm_void_instance")+");");
     env.unindent();
     env.println("}");
   }
diff --git a/lib/c/2014/labcomm2014.c b/lib/c/2014/labcomm2014.c
index 1cd953a789568e82d9ade761d88651754ae218f5..f599e78e81b6076823d75c4bad84899540842bbf 100644
--- a/lib/c/2014/labcomm2014.c
+++ b/lib/c/2014/labcomm2014.c
@@ -37,6 +37,12 @@
 #include "labcomm2014_ioctl.h"
 #include "labcomm2014_dynamic_buffer_writer.h"
 
+/*
+ * A non-null void sample instance
+ */
+void *labcomm_void_instance = &labcomm_void_instance;
+
+
 /* Unwrapping reader/writer functions */
 #define UNWRAP_ac(rw, ac, ...) ac
 #define UNWRAP(func, ...)	     \
diff --git a/lib/c/2014/labcomm2014_private.h b/lib/c/2014/labcomm2014_private.h
index 8f98fed43338241433d66347e83fa65b28af60fd..964299b146ed04dd69e27ab2c1cb683476a7917c 100644
--- a/lib/c/2014/labcomm2014_private.h
+++ b/lib/c/2014/labcomm2014_private.h
@@ -81,6 +81,11 @@
 #define LABCOMM_CONSTRUCTOR __attribute__((constructor))
 #endif
 
+/*
+ * A non-null void sample instance
+ */
+extern void *labcomm_void_instance;
+
 /*
  * Semi private dynamic memory declarations
  */