diff --git a/CMakeLists.txt b/CMakeLists.txt
index cbd192b676f6bce15929b3ac3a3cd7a4b938cd6f..4764f63d4113923e33784500bb9b6828c8ff7ef1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -84,7 +84,8 @@ set(GMSH_API
   ${CMAKE_CURRENT_BINARY_DIR}/Common/GmshConfig.h 
   ${CMAKE_CURRENT_BINARY_DIR}/Common/GmshVersion.h
   Common/Gmsh.h Common/Context.h Common/GmshDefines.h Common/GmshMessage.h
-    Common/VertexArray.h Common/Octree.h Common/OctreeInternals.h
+    Common/VertexArray.h Common/Octree.h Common/OctreeInternals.h 
+    Common/OS.h Common/StringUtils.h Common/OpenFile.h
   Numeric/Numeric.h Numeric/GaussIntegration.h Numeric/polynomialBasis.h
     Numeric/JacobianBasis.h Numeric/fullMatrix.h
     Numeric/simpleFunction.h Numeric/cartesian.h
@@ -108,8 +109,9 @@ set(GMSH_API
   Solver/dofManager.h Solver/femTerm.h Solver/laplaceTerm.h Solver/elasticityTerm.h
     Solver/crossConfTerm.h Solver/orthogonalTerm.h
     Solver/linearSystem.h Solver/linearSystemGMM.h Solver/linearSystemCSR.h 
-    Solver/linearSystemFull.h Solver/elasticitySolver.h Solver/sparsityPattern.h    Solver/groupOfElements.h 
-  Post/PView.h Post/PViewData.h Plugin/PluginManager.h Post/OctreePost.h Post/PViewDataGModel.h
+    Solver/linearSystemFull.h Solver/elasticitySolver.h Solver/sparsityPattern.h    Solver/groupOfElements.h Solver/linearSystemPETSc.h
+  Post/PView.h Post/PViewData.h Plugin/PluginManager.h Post/OctreePost.h 
+  Post/PViewDataGModel.h Post/PViewOptions.h Post/ColorTable.h
    Numeric/nodalBasis.h
   Graphics/drawContext.h
   contrib/kbipack/gmp_normal_form.h contrib/kbipack/gmp_matrix.h 
diff --git a/Geo/Homology.cpp b/Geo/Homology.cpp
index 41c7716a6384ef6fb1e6aea15186fa5151a401db..3c04b4e5c162532f879c90c9f23d84d966926512 100644
--- a/Geo/Homology.cpp
+++ b/Geo/Homology.cpp
@@ -432,7 +432,7 @@ void Homology::findCompatibleBasisPair(int master, std::vector<int> dim)
   }
 }
 
-void Homology::_addToModel(int dim, bool co, bool post, int physicalNumRequest) const
+std::vector<int> Homology::_addToModel(int dim, bool co, bool post, int physicalNumRequest) const
 {
   if(dim < 0 || dim > 3) return;
   int pgnum = -1;
@@ -460,11 +460,12 @@ void Homology::_addToModel(int dim, bool co, bool post, int physicalNumRequest)
     else Msg::Info("Span H^%d(%s) = %s",
                    dim, domain.c_str(), span.c_str());
   }
-
+  return physicals;
 }
 
 void Homology::addChainsToModel(int dim, bool post, int physicalNumRequest) const
 {
+  std::vector<int> physicals;
   if(!_homologyComputed[dim])
     Msg::Warning("%d-Homology is not computed", dim);
   if(dim == -1) {
diff --git a/Geo/Homology.h b/Geo/Homology.h
index 1a997a72c45ad02a21e1739c2166ceb72192b7cb..6010a1e2f7f8545d99ad401eb345822772a003fc 100644
--- a/Geo/Homology.h
+++ b/Geo/Homology.h
@@ -90,7 +90,7 @@ class Homology
   void _deleteChains(std::vector<int> dim=vecN0(4));
   void _deleteCochains(std::vector<int> dim=vecN0(4));
 
-  void _addToModel(int dim, bool co, bool post, int physicalNumRequest) const;
+  std::vector<int> _addToModel(int dim, bool co, bool post, int physicalNumRequest) const;
 
  public: