Fixed a bit (still no warranties).
diff --git a/Objects/xxobject.c b/Objects/xxobject.c
index ffafcd7..c3714e0 100644
--- a/Objects/xxobject.c
+++ b/Objects/xxobject.c
@@ -1,5 +1,17 @@
+/* Use this file as a template to start implementing a new object type.
+   If your objects will be called foobar, start by copying this file to
+   foobarobject.c, changing all occurrences of xx to foobar and all
+   occurrences of Xx by Foobar.  You will probably want to delete all
+   references to 'x_attr' and add your own types of attributes
+   instead.  Maybe you want to name your local variables other than
+   'xp'.  If your object type is needed in other files, you'll have to
+   create a file "foobarobject.h"; see intobject.h for an example. */
+
+
 /* Xx objects */
 
+#include "allobjects.h"
+
 typedef struct {
 	OB_HEAD
 	object	*x_attr;	/* Attributes dictionary */
@@ -7,6 +19,8 @@
 
 extern typeobject Xxtype;	/* Really static, forward */
 
+#define is_xxobject(v)		((v)->ob_type == &Xxtype)
+
 static xxobject *
 newxxobject(arg)
 	object *arg;
@@ -25,8 +39,7 @@
 xx_dealloc(xp)
 	xxobject *xp;
 {
-	if (xp->x_attr != NULL)
-		DECREF(xp->x_attr);
+	XDECREF(xp->x_attr);
 	DEL(xp);
 }
 
@@ -70,7 +83,7 @@
 	if (xp->x_attr == NULL) {
 		xp->x_attr = newdictobject();
 		if (xp->x_attr == NULL)
-			return errno;
+			return -1;
 	}
 	if (v == NULL)
 		return dictremove(xp->x_attr, name);