diff --git a/include/proto/obj_type.h b/include/proto/obj_type.h
index 617464c..47273ca 100644
--- a/include/proto/obj_type.h
+++ b/include/proto/obj_type.h
@@ -42,13 +42,16 @@
 static inline const char *obj_type_name(enum obj_type *t)
 {
 	switch (obj_type(t)) {
+	case OBJ_TYPE_NONE:     return "NONE";
 	case OBJ_TYPE_LISTENER: return "LISTENER";
 	case OBJ_TYPE_PROXY:    return "PROXY";
 	case OBJ_TYPE_SERVER:   return "SERVER";
 	case OBJ_TYPE_APPLET:   return "APPLET";
 	case OBJ_TYPE_APPCTX:   return "APPCTX";
 	case OBJ_TYPE_CONN:     return "CONN";
-	default:                return "NONE";
+	case OBJ_TYPE_SRVRQ:    return "SRVRQ";
+	case OBJ_TYPE_CS:       return "CS";
+	default:                return "!INVAL!";
 	}
 }
 
@@ -158,14 +161,16 @@
 static inline void *obj_base_ptr(enum obj_type *t)
 {
 	switch (obj_type(t)) {
+	case OBJ_TYPE_NONE:     return NULL;
 	case OBJ_TYPE_LISTENER: return __objt_listener(t);
 	case OBJ_TYPE_PROXY:    return __objt_proxy(t);
 	case OBJ_TYPE_SERVER:   return __objt_server(t);
 	case OBJ_TYPE_APPLET:   return __objt_applet(t);
 	case OBJ_TYPE_APPCTX:   return __objt_appctx(t);
 	case OBJ_TYPE_CONN:     return __objt_conn(t);
+	case OBJ_TYPE_SRVRQ:    return __objt_dns_srvrq(t);
 	case OBJ_TYPE_CS:       return __objt_cs(t);
-	default:                return NULL;
+	default:                return t; // exact pointer for invalid case
 	}
 }
 
