diff --git a/skeletons/constr_SET.c b/skeletons/constr_SET.c
index 93da782..6a604e4 100644
--- a/skeletons/constr_SET.c
+++ b/skeletons/constr_SET.c
@@ -147,7 +147,7 @@
 		 */
 
 		rval = ber_check_tags(td, ctx, ptr, size,
-			tag_mode, &ctx->left, 0);
+			tag_mode, 1, &ctx->left, 0);
 		if(rval.code != RC_OK) {
 			ASN_DEBUG("%s tagging check failed: %d",
 				td->name, rval.code);
@@ -533,7 +533,7 @@
 	/*
 	 * Encode the TLV for the sequence itself.
 	 */
-	ret = der_write_tags(td, computed_size, tag_mode, tag, cb, app_key);
+	ret = der_write_tags(td, computed_size, tag_mode, 1, tag, cb, app_key);
 	if(ret == -1) {
 		my_erval.encoded = -1;
 		my_erval.failed_type = td;
@@ -633,11 +633,11 @@
 	int edx;
 	int ret;
 
-	if(!sptr) return cb("<absent>", 8, app_key);
+	if(!sptr) return (cb("<absent>", 8, app_key) < 0) ? -1 : 0;
 
 	/* Dump preamble */
-	if(cb(td->name, strlen(td->name), app_key)
-	|| cb(" ::= {\n", 7, app_key))
+	if(cb(td->name, strlen(td->name), app_key) < 0
+	|| cb(" ::= {", 6, app_key) < 0)
 		return -1;
 
 	for(edx = 0; edx < td->elements_count; edx++) {
@@ -651,27 +651,23 @@
 			memb_ptr = (const void *)((const char *)sptr + elm->memb_offset);
 		}
 
-		/* Indentation */
-		for(ret = 0; ret < ilevel; ret++) cb(" ", 1, app_key);
+		_i_INDENT(1);
 
 		/* Print the member's name and stuff */
-		if(cb(elm->name, strlen(elm->name), app_key)
-		|| cb(": ", 2, app_key))
+		if(cb(elm->name, strlen(elm->name), app_key) < 0
+		|| cb(": ", 2, app_key) < 0)
 			return -1;
 
 		/* Print the member itself */
-		ret = elm->type->print_struct(elm->type, memb_ptr, ilevel + 4,
+		ret = elm->type->print_struct(elm->type, memb_ptr, ilevel + 1,
 			cb, app_key);
 		if(ret) return ret;
-
-		ret = cb("\n", 1, app_key);
-		if(ret) return ret;
 	}
 
-	/* Indentation */
-	for(ret = 0; ret < ilevel - 4; ret++) cb(" ", 1, app_key);
+	ilevel--;
+	_i_INDENT(1);
 
-	return cb("}", 1, app_key);
+	return (cb("}", 1, app_key) < 0) ? -1 : 0;
 }
 
 void
