diff --git a/Common/OpenFile.cpp b/Common/OpenFile.cpp
index bcc5da6f5a372ca4130105b6ce06b65dc96aeb78..059fd69b05858bbf010f2700756396943d3029c7 100644
--- a/Common/OpenFile.cpp
+++ b/Common/OpenFile.cpp
@@ -110,8 +110,8 @@ void SetBoundingBox()
   CTX::instance()->min[2] = bb.min().z(); CTX::instance()->max[2] = bb.max().z();
   FinishUpBoundingBox();
   CTX::instance()->lc = sqrt(SQU(CTX::instance()->max[0] - CTX::instance()->min[0]) +
-                SQU(CTX::instance()->max[1] - CTX::instance()->min[1]) + 
-                SQU(CTX::instance()->max[2] - CTX::instance()->min[2]));
+                             SQU(CTX::instance()->max[1] - CTX::instance()->min[1]) + 
+                             SQU(CTX::instance()->max[2] - CTX::instance()->min[2]));
   for(int i = 0; i < 3; i++) 
     CTX::instance()->cg[i] = 0.5 * (CTX::instance()->min[i] + CTX::instance()->max[i]);
 }
diff --git a/Post/PViewDataList.cpp b/Post/PViewDataList.cpp
index 0907110f0e7bf5ffaa69cc6e34ba56344a9ca330..ce67f3bdaaeed1479ea2cd554a7f3ed8fab178bb 100644
--- a/Post/PViewDataList.cpp
+++ b/Post/PViewDataList.cpp
@@ -198,9 +198,11 @@ void PViewDataList::_stat(List_T *list, int nbcomp, int nbelm, int nbnod, int nb
 
   if(haveInterpolationMatrices()){
     std::vector<gmshMatrix<double>*> im;
-    if(getInterpolationMatrices(nbedg, im) == 4)
+    int nim = getInterpolationMatrices(nbedg, im);
+    if(nim == 4)
       nbnod = im[2]->size1();
-    nbval = nbcomp * im[0]->size1();
+    if(nim)
+      nbval = nbcomp * im[0]->size1();
   }
   
   int nb = List_Nbr(list) / nbelm;
@@ -663,13 +665,12 @@ bool PViewDataList::combineSpace(nameData &nd)
       return false;
     }
 
-    // copy interpolation from first merged dataset, if any
-    if(!i){
-      for(std::map<int, std::vector<gmshMatrix<double>*> >::iterator it = 
-            l->_interpolation.begin(); it != l->_interpolation.end(); it++)
+    // copy interpolation marices
+    for(std::map<int, std::vector<gmshMatrix<double>*> >::iterator it = 
+          l->_interpolation.begin(); it != l->_interpolation.end(); it++)
+      if(_interpolation[it->first].empty())
         for(unsigned int i = 0; i < it->second.size(); i++)
           _interpolation[it->first].push_back(new gmshMatrix<double>(*it->second[i]));
-    }
     
     // merge elememts
     List_Merge(l->SP, SP); NbSP += l->NbSP; List_Merge(l->VP, VP); NbVP += l->NbVP;
diff --git a/utils/api_demos/mainSimple.cpp b/utils/api_demos/mainSimple.cpp
index 9a14be051dcb7d94003f8c8b5a7568c610f805ab..77a6737cdb809dd1f464de767c57f610cbac53de 100644
--- a/utils/api_demos/mainSimple.cpp
+++ b/utils/api_demos/mainSimple.cpp
@@ -15,7 +15,8 @@ int main(int argc, char **argv)
   GmshInitialize(argc, argv);
   //GmshSetOption("Mesh", "Algorithm", 5);
   GModel *m = new GModel();
-  m->readGEO("../../tutorial/t5.geo");
+  //m->readGEO("../../tutorial/t5.geo");
+  GmshMergeFile("../../tutorial/t5.geo"); // will also set the bbox
   m->mesh(3);
   for(GModel::riter it = m->firstRegion(); it != m->lastRegion(); ++it){
     GRegion *r = *it;