diff --git a/compiler/2014/C_CodeGen.jrag b/compiler/2014/C_CodeGen.jrag
index 0bf1eec303a9d06595f7201446571e6d58ad375e..b6e643c33c08c800506087792b619abfba0c63d1 100644
--- a/compiler/2014/C_CodeGen.jrag
+++ b/compiler/2014/C_CodeGen.jrag
@@ -1284,7 +1284,7 @@ aspect C_Signature {
   eq TypeDecl.C_DeclTypeString() = "LABCOMM_TYPEDEF";
 
   public void Decl.C_emitSignature(C_env env) {
-    if( (isReferenced() || isSampleDecl())){
+    if( (true || isReferenced() || isSampleDecl())){
       Signature signature = getSignature();
       signature.C_emitSignature(env, !isSampleDecl());
       C_emitFlatSignature(env);
@@ -1480,10 +1480,14 @@ aspect C_Constructor {
     env.println("}"); 
   }
 
-  public void Decl.C_emitConstructor(C_env env) {
-//  }
-//XXX
-//  public void SampleDecl.C_emitConstructor(C_env env) {
+  public void TypeDecl.C_emitConstructor(C_env env) {
+    if (isReferenced()) {
+      env.println("labcomm"+env.verStr+"_set_local_index(&signature_" +
+                  env.prefix + getName() + ");");
+    }
+  }
+
+  public void SampleDecl.C_emitConstructor(C_env env) {
     env.println("labcomm"+env.verStr+"_set_local_index(&signature_" + 
 		env.prefix + getName() + ");");
   }
diff --git a/lib/c/2014/test/generated_encoding.lc b/lib/c/2014/test/generated_encoding.lc
index 4055562aaa48c83c9e92c7d1f008f13ab0468039..e2de7133de344c45f3154811613028bd14f78a05 100644
--- a/lib/c/2014/test/generated_encoding.lc
+++ b/lib/c/2014/test/generated_encoding.lc
@@ -1,3 +1,4 @@
+typedef void unused_t;
 typedef void v_t;
 sample v_t V;
 sample byte B;