diff --git a/src/parallel/gitter_pll_impl.cc b/src/parallel/gitter_pll_impl.cc
index 21fcdb3aafa3237ede13fbcf14d01d8408103333..dfd000b252469bddeb1b675471682b9720e0fa0e 100644
--- a/src/parallel/gitter_pll_impl.cc
+++ b/src/parallel/gitter_pll_impl.cc
@@ -700,7 +700,8 @@ void TetraPllXBaseMacro< A > :: unattach2 (int i) {
 }
 
 template < class A >
-void TetraPllXBaseMacro< A > :: attach2 (int i) {
+void TetraPllXBaseMacro< A > :: attach2 (int i) 
+{
   map < int, int, less < int > > :: iterator pos = _moveTo.find (i) ;
   if (pos == _moveTo.end ()) {
     _moveTo.insert (pair < const int, int > (i,1)) ;
@@ -985,7 +986,6 @@ bool Periodic3PllXBaseMacro< A > :: ldbUpdateGraphVertex (LoadBalancer :: DataBa
       , _center
 #endif
       )) ;
-  std::cout << "periodic update vertex " << std::endl;
 
   return true ;
 }
@@ -1029,7 +1029,6 @@ bool Periodic3PllXBaseMacro< A > :: packAll (vector < ObjectStream > & osv)
   for (const_iterator i = _moveTo.begin () ; i != iEnd ; ++i) 
   {
     int j = (*i).first ;
-    std::cout << "pack periodic bnd to move to " << j << std::endl;
     assert ((osv.begin () + j) < osv.end ()) ;
     assert (_moveTo.size () == 1) ;
     {
@@ -1073,7 +1072,30 @@ void Periodic3PllXBaseMacro< A > :: packAsBnd (int fce, int who, ObjectStream &
     os.writeObject (myperiodic3 ().myvertex (fce,0)->ident ()) ;
     os.writeObject (myperiodic3 ().myvertex (fce,1)->ident ()) ;
     os.writeObject (myperiodic3 ().myvertex (fce,2)->ident ()) ;
-    os.writeObject ( MacroGridMoverIF :: NO_POINT ); // 0 == no point transmitted 
+
+    os.writeObject ( MacroGridMoverIF :: POINTTRANSMITTED ); // 1 == points are transmitted 
+    cout << "Write periodic with poijnt " << std::endl;
+
+    typedef Gitter :: Geometric :: Tetra Tetra ;
+    typedef Gitter :: Geometric :: hasFace3 hasFace3 ;
+
+    // know which face is the internal bnd 
+    os.writeObject (fce);
+   
+    const pair < const hasFace3 *, int > nb = myperiodic3().myneighbour( fce );
+    const Tetra* tetra = (Tetra *) nb.first ;
+    for(int k=0; k<4; ++k) 
+    {
+      int vx = tetra->myvertex (k)->ident ();
+      os.writeObject ( vx ) ;
+    }
+
+    const Gitter :: Geometric :: VertexGeo * vertex = tetra->myvertex( nb.second );
+    os.writeObject( vertex->ident() );
+    const alucoord_t (&p)[3] = vertex->Point();
+    os.writeObject ( p[0] ) ;
+    os.writeObject ( p[1] ) ;
+    os.writeObject ( p[2] ) ;
   }
   return ;
 }
diff --git a/src/parallel/gitter_pll_sti.cc b/src/parallel/gitter_pll_sti.cc
index 1045a4ccceafbc6b68f6298929ac9fe000309900..dadbd8a1c1256a97d31417e36bd3212b7c65e072 100644
--- a/src/parallel/gitter_pll_sti.cc
+++ b/src/parallel/gitter_pll_sti.cc
@@ -1003,7 +1003,8 @@ void GitterPll :: exchangeStaticState () {
     {for (int l = 0 ; l < nl ; l ++ ) {
       AccessIteratorTT < hface_STI > :: InnerHandle wi (containerPll (),l) ;
       AccessIteratorTT < hface_STI > :: OuterHandle wo (containerPll (),l) ;
-      for (wi.first () ; ! wi.done () ; wi.next ()) {
+      for (wi.first () ; ! wi.done () ; wi.next ()) 
+      {
         pair < ElementPllXIF_t *, int > p = wi.item ().accessInnerPllX () ;
         p.first->writeStaticState (osv [l], p.second) ;
       }