diff --git a/dune/uggrid/parallel/dddif/initddd.cc b/dune/uggrid/parallel/dddif/initddd.cc
index 50b134d9ddf4b397a598bf25291e8be9314f8776..2e1db8288c961af9c4814a38fc0484fc77113235 100644
--- a/dune/uggrid/parallel/dddif/initddd.cc
+++ b/dune/uggrid/parallel/dddif/initddd.cc
@@ -88,6 +88,11 @@ NS_DIM_PREFIX NodeIF, NS_DIM_PREFIX NodeAllIF;
 DDD_IF NS_DIM_PREFIX BorderVectorIF, NS_DIM_PREFIX BorderVectorSymmIF,
 NS_DIM_PREFIX OuterVectorIF, NS_DIM_PREFIX OuterVectorSymmIF,
 NS_DIM_PREFIX VectorVIF, NS_DIM_PREFIX VectorVAllIF, NS_DIM_PREFIX VectorIF;
+/* DDD interfaces for node communication */
+DDD_IF NS_DIM_PREFIX Node_InteriorBorder_All_IF;
+/* DDD interfaces for facet (side vector) communication */
+DDD_IF NS_DIM_PREFIX Facet_InteriorBorder_All_IF;
+
 /* DDD interfaces for edge communication */
 DDD_IF NS_DIM_PREFIX EdgeIF, NS_DIM_PREFIX BorderEdgeSymmIF, NS_DIM_PREFIX EdgeHIF, NS_DIM_PREFIX EdgeVHIF,
 NS_DIM_PREFIX EdgeSymmVHIF;
@@ -731,6 +736,11 @@ static void ddd_IfInit(DDD::DDDContext& context)
   dddctrl.NodeAllIF = DDD_IFDefine(context, 1,O,5,A,5,B);
   DDD_IFSetName(context, dddctrl.NodeAllIF, "NodeAllIF: All/All");
 
+  // The Dune InteriorBorder_All_Interface for nodes
+  A[0] = PrioMaster; A[1] = PrioBorder;
+  B[0] = PrioMaster; B[1] = PrioBorder; B[2] = PrioVGhost; B[3] = PrioHGhost; B[4] = PrioVHGhost;
+  dddctrl.Node_InteriorBorder_All_IF = DDD_IFDefine(context, 1,O,2,A,5,B);
+  DDD_IFSetName(context, dddctrl.Node_InteriorBorder_All_IF, "Node_InteriorBorder_All_IF: Master/Border->Master/Border/VGhost/HGhost/VHGhost");
 
   /* define vector interfaces */
   O[0] = dddctrl.TypeVector;
@@ -770,6 +780,13 @@ static void ddd_IfInit(DDD::DDDContext& context)
   dddctrl.VectorIF = DDD_IFDefine(context, 1,O,1,A,3,B);
   DDD_IFSetName(context, dddctrl.VectorIF, "VectorIF: Master->VGhost/VHGhost/HGhost");
 
+  // The Dune InteriorBorder_All_Interface for facets
+  A[0] = PrioMaster; A[1] = PrioBorder;
+  B[0] = PrioMaster; B[1] = PrioBorder; B[2] = PrioVGhost; B[3] = PrioHGhost; B[4] = PrioVHGhost;
+  dddctrl.Facet_InteriorBorder_All_IF = DDD_IFDefine(context, 1,O,2,A,5,B);
+  DDD_IFSetName(context, dddctrl.Facet_InteriorBorder_All_IF, "Facet_InteriorBorder_All_IF: Master/Border->Master/Border/VGhost/HGhost/VHGhost");
+
+
   /* define vertex interfaces */
   O[0] = dddctrl.TypeIVertex; O[1] = dddctrl.TypeBVertex;
 
diff --git a/dune/uggrid/parallel/dddif/parallel.h b/dune/uggrid/parallel/dddif/parallel.h
index cc9fec7f1d1c2fc09f6dde3f91eebff5675c5043..0e28e4446a88d4b4282763be4d2e9a57e9629803 100644
--- a/dune/uggrid/parallel/dddif/parallel.h
+++ b/dune/uggrid/parallel/dddif/parallel.h
@@ -200,10 +200,11 @@ enum HandlerSets
 extern DDD_IF ElementIF, ElementSymmIF, ElementVIF, ElementSymmVIF,
               ElementVHIF, ElementSymmVHIF;
 extern DDD_IF BorderNodeIF, BorderNodeSymmIF, OuterNodeIF, NodeVIF,
-              NodeIF, NodeAllIF;
+              NodeIF, NodeAllIF, Node_InteriorBorder_All_IF;
 extern DDD_IF BorderVectorIF, BorderVectorSymmIF,
               OuterVectorIF, OuterVectorSymmIF,
               VectorVIF, VectorVAllIF, VectorIF;
+extern DDD_IF Facet_InteriorBorder_All_IF;
 extern DDD_IF EdgeIF, BorderEdgeSymmIF, EdgeHIF, EdgeVHIF,
               EdgeSymmVHIF;
 
@@ -253,10 +254,11 @@ struct DDD_CTRL
   DDD_IF ElementIF, ElementSymmIF, ElementVIF, ElementSymmVIF,
          ElementVHIF, ElementSymmVHIF;
   DDD_IF BorderNodeIF, BorderNodeSymmIF, OuterNodeIF, NodeVIF,
-         NodeIF, NodeAllIF;
+         NodeIF, NodeAllIF, Node_InteriorBorder_All_IF;
   DDD_IF BorderVectorIF, BorderVectorSymmIF,
          OuterVectorIF, OuterVectorSymmIF,
          VectorVIF, VectorVAllIF, VectorIF;
+  DDD_IF Facet_InteriorBorder_All_IF;
   DDD_IF VertexIF;
   DDD_IF EdgeIF, BorderEdgeSymmIF, EdgeHIF, EdgeVHIF,
          EdgeSymmVHIF;