diff --git a/tmcd/tmcd.c b/tmcd/tmcd.c
index fab2e86ec1b81947618e87ad26b15dbbfc4f99a4..190fd1b9b69dddda641bf96c5fe6a1de05661810 100644
--- a/tmcd/tmcd.c
+++ b/tmcd/tmcd.c
@@ -11986,22 +11986,24 @@ COMMAND_PROTOTYPE(dogeniall)
 	{ "manifest", getgenimanifest, 1 },
 	{ "control_mac", getgenicontrolmac, 1 },
 	{ "version", getgeniversion, 1 },
-	{ "getversion", getgenigetversion, 1 },
-	{ "sliverstatus", getgenisliverstatus, 1 }
+	{ "getversion", getgenigetversion, 0 },
+	{ "sliverstatus", getgenisliverstatus, 0 }
     };
     int i;
     
     p = geni_append( buf, buf + sizeof buf, "{" );
 
     for( i = 0; i < sizeof work / sizeof *work; i++ ) {
-	char *val;
+	char *val = work[ i ].func( reqp );
+
+	if( !val )
+	    continue;
 
 	if( i )
 	    p = geni_append( p, buf + sizeof buf, "," );
 	    
 	p = geni_quote( p, buf + sizeof buf, work[ i ].tag );
 	p = geni_append( p, buf + sizeof buf, ":" );
-	val = work[ i ].func( reqp );
 	p = ( work[ i ].quote ? geni_quote : geni_append )( p, buf + sizeof
 							    buf, val );
 	free( val );