Index: /trunk/glueforge/templates/psdb/metadatafromobject_c.tt
===================================================================
--- /trunk/glueforge/templates/psdb/metadatafromobject_c.tt	(revision 4353)
+++ /trunk/glueforge/templates/psdb/metadatafromobject_c.tt	(revision 4354)
@@ -5,8 +5,11 @@
 #include <stdlib.h>
 
+#define MAX_STRING_LENGTH 1024
+
 int main ()
 {
     psMetadata      *md;
     [% indented(object_name, "*object") %];
+    bool            status;
 
     object = [% object_name %]Alloc(
@@ -25,6 +28,20 @@
     }
 
+    psFree(object);
+
+[% FOREACH item = columns -%]
+[% IF item.type == "S32" or item.type == "F32" or item.type == "F64" -%]
+    if (!psMetadataLookup[% item.type %](&status, md, "[% item.name %]") == [% item.test %]) {
+[% ELSIF item.type == "STR" -%]
+    if (strncmp(psMetadataLookupPtr(&status, md, "[% item.name %]"), [% item.test %], MAX_STRING_LENGTH)) {
+[% ELSIF item.type == "BOOL" -%]
+    if (!psMetadataLookupBool(&status, md, "[% item.name %]") == [% item.test %]) {
+[% END -%]
+        psFree(md);
+        exit(EXIT_FAILURE);
+    }
+[% END -%]
+
     psFree(md);
-    psFree(object);
 
     exit(EXIT_SUCCESS);
