diff -u compoundhandler.cpp.orig compoundhandler.cpp
--- compoundhandler.cpp.orig	2012-07-09 20:08:54.000000000 +0200
+++ compoundhandler.cpp	2012-07-16 10:04:28.000000000 +0200
@@ -507,15 +507,19 @@
 {
   switch (m_kind)
   {
-    case IClass::Class:         return (IClass *)this;
-    case IStruct::Struct:       return (IStruct *)this;
-    case IUnion::Union:         return (IUnion *)this;
-    case IException::Exception: return (IException *)this;
-    case IInterface::Interface: return (IInterface *)this;
-    case INamespace::Namespace: return (INamespace *)this;
-    case IFile::File:           return (IFile *)this;
-    case IGroup::Group:         return (IGroup *)this;
-    case IPage::Page:           return (IPage *)this;
+    case ICompound::Class:     return (IClass *)this;
+    case ICompound::Struct:    return (IStruct *)this;
+    case ICompound::Union:     return (IUnion *)this;
+    case ICompound::Interface: return (IInterface *)this;
+    case ICompound::Protocol:  return (IClass *)this;
+    case ICompound::Category:  return (IClass *)this;
+    case ICompound::Exception: return (IException *)this;
+    case ICompound::File:      return (IFile *)this;
+    case ICompound::Namespace: return (INamespace *)this;
+    case ICompound::Group:     return (IGroup *)this;
+    case ICompound::Page:      return (IPage *)this;
+    case ICompound::Example:   return (IPage *)this;
+    case ICompound::Dir:       return (IDir *)this;
     default:   return 0;
   }
   return 0;
diff -u compoundhandler.h.orig compoundhandler.h
--- compoundhandler.h.orig	2012-01-29 16:25:52.000000000 +0100
+++ compoundhandler.h	2012-07-16 10:04:44.000000000 +0200
@@ -110,6 +110,7 @@
                         public IFile,
                         public IGroup,
                         public IPage,
+                        public IDir,
                         public BaseHandler<CompoundHandler>
 {
     friend class RelatedCompound;
diff -u doxmlintf.h.orig doxmlintf.h
--- doxmlintf.h.orig	2008-08-16 22:21:55.000000000 +0200
+++ doxmlintf.h	2012-07-16 10:05:59.000000000 +0200
@@ -1070,6 +1070,13 @@
     virtual const IDocTitle *title() const = 0;
 };
 
+/** \brief Interface to a directory in the object model. */
+class IDir : public ICompound
+{
+  public:
+    virtual ICompoundIterator *nestedCompounds() const = 0;
+};
+
 /*! Root node of the object model. */
 class IDoxygen 
 {
