From 85cf7e8a888c36743d43157dbd7a07f951d04b44 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Sat, 26 Mar 2011 16:49:45 +0000
Subject: [PATCH] - removed lua support - fixed MED node ordering - polished 64
 bit Cocoa Mac OS X FLTK version - updated copyright

---
 CMakeLists.txt                                |   29 +-
 Common/Bindings.cpp                           |   24 -
 Common/Bindings.h                             |   30 -
 Common/CMakeLists.txt                         |    4 +-
 Common/Colors.h                               |    2 +-
 Common/CommandLine.cpp                        |   17 +-
 Common/CommandLine.h                          |    2 +-
 Common/ConnectionManager.cpp                  |    2 +-
 Common/ConnectionManager.h                    |    2 +-
 Common/Context.cpp                            |    2 +-
 Common/Context.h                              |    4 +-
 Common/CreateFile.cpp                         |    2 +-
 Common/CreateFile.h                           |    2 +-
 Common/DefaultOptions.h                       |    8 +-
 Common/DummyBindings.h                        |   40 -
 Common/Gmsh.cpp                               |   15 +-
 Common/Gmsh.h                                 |    4 +-
 Common/GmshConfig.h.in                        |    3 +-
 Common/GmshDefines.h                          |    2 +-
 Common/GmshMessage.cpp                        |   20 +-
 Common/GmshMessage.h                          |    4 +-
 Common/GmshRemote.cpp                         |    2 +-
 Common/GmshRemote.h                           |    2 +-
 Common/GmshSocket.h                           |    2 +-
 Common/GmshVersion.h.in                       |    2 +-
 Common/Hash.h                                 |    2 +-
 Common/HashMap.h                              |    2 +-
 Common/ListUtils.cpp                          |    2 +-
 Common/ListUtils.h                            |    2 +-
 Common/LuaBindings.cpp                        |  469 ------
 Common/LuaBindings.h                          | 1468 -----------------
 Common/Main.cpp                               |    2 +-
 Common/MallocUtils.cpp                        |    2 +-
 Common/MallocUtils.h                          |    2 +-
 Common/OS.cpp                                 |    2 +-
 Common/OS.h                                   |    2 +-
 Common/Octree.cpp                             |    2 +-
 Common/Octree.h                               |    2 +-
 Common/OctreeInternals.cpp                    |    2 +-
 Common/OctreeInternals.h                      |    2 +-
 Common/OpenFile.cpp                           |    8 +-
 Common/OpenFile.h                             |    2 +-
 Common/Options.cpp                            |    2 +-
 Common/Options.h                              |    2 +-
 Common/SmoothData.cpp                         |    2 +-
 Common/SmoothData.h                           |    2 +-
 Common/StringUtils.cpp                        |    2 +-
 Common/StringUtils.h                          |    2 +-
 Common/TreeUtils.cpp                          |    2 +-
 Common/TreeUtils.h                            |    2 +-
 Common/VertexArray.cpp                        |    2 +-
 Common/VertexArray.h                          |    2 +-
 Common/gmshpy.i                               |   19 +-
 Fltk/CMakeLists.txt                           |    2 +-
 Fltk/FlGui.cpp                                |   26 +-
 Fltk/FlGui.h                                  |   10 +-
 Fltk/Main.cpp                                 |    2 +-
 Fltk/aboutWindow.cpp                          |    2 +-
 Fltk/aboutWindow.h                            |    2 +-
 Fltk/classificationEditor.cpp                 |    2 +-
 Fltk/classificationEditor.h                   |    2 +-
 Fltk/clippingWindow.cpp                       |    2 +-
 Fltk/clippingWindow.h                         |    2 +-
 Fltk/colorbarWindow.cpp                       |    2 +-
 Fltk/colorbarWindow.h                         |    2 +-
 Fltk/contextWindow.cpp                        |    2 +-
 Fltk/contextWindow.h                          |    2 +-
 Fltk/extraDialogs.cpp                         |    2 +-
 Fltk/extraDialogs.h                           |    2 +-
 Fltk/fieldWindow.cpp                          |    2 +-
 Fltk/fieldWindow.h                            |    2 +-
 Fltk/fileDialogs.cpp                          |    2 +-
 Fltk/fileDialogs.h                            |    2 +-
 Fltk/graphicWindow.cpp                        |   55 +-
 Fltk/graphicWindow.h                          |    2 +-
 Fltk/mainWindow.h                             |    2 +-
 Fltk/manipWindow.cpp                          |    2 +-
 Fltk/manipWindow.h                            |    2 +-
 Fltk/menuWindow.cpp                           |   11 +-
 Fltk/menuWindow.h                             |    3 +-
 Fltk/messageWindow.cpp                        |    2 +-
 Fltk/messageWindow.h                          |    2 +-
 Fltk/openglWindow.cpp                         |    4 +-
 Fltk/openglWindow.h                           |    2 +-
 Fltk/optionWindow.cpp                         |    2 +-
 Fltk/optionWindow.h                           |    2 +-
 Fltk/paletteWindow.h                          |    2 +-
 Fltk/partitionDialog.cpp                      |    2 +-
 Fltk/partitionDialog.h                        |    2 +-
 Fltk/pluginWindow.cpp                         |    2 +-
 Fltk/pluginWindow.h                           |    2 +-
 Fltk/popupButton.h                            |    2 +-
 Fltk/projectionEditor.cpp                     |    2 +-
 Fltk/projectionEditor.h                       |    2 +-
 Fltk/solverWindow.cpp                         |    2 +-
 Fltk/solverWindow.h                           |    2 +-
 Fltk/spherePositionWidget.h                   |    2 +-
 Fltk/statisticsWindow.cpp                     |    2 +-
 Fltk/statisticsWindow.h                       |    2 +-
 Fltk/visibilityWindow.cpp                     |    2 +-
 Fltk/visibilityWindow.h                       |    2 +-
 Geo/ACISEdge.cpp                              |    2 +-
 Geo/ACISEdge.h                                |    2 +-
 Geo/ACISFace.cpp                              |    2 +-
 Geo/ACISFace.h                                |    2 +-
 Geo/ACISVertex.cpp                            |    2 +-
 Geo/ACISVertex.h                              |    2 +-
 Geo/CGNSOptions.h                             |    2 +-
 Geo/CMakeLists.txt                            |    4 +-
 Geo/Cell.cpp                                  |    2 +-
 Geo/Cell.h                                    |    2 +-
 Geo/CellComplex.cpp                           |    2 +-
 Geo/CellComplex.h                             |    2 +-
 Geo/ChainComplex.cpp                          |    2 +-
 Geo/ChainComplex.h                            |    2 +-
 Geo/CustomContainer.h                         |    2 +-
 Geo/ExtrudeParams.cpp                         |    2 +-
 Geo/ExtrudeParams.h                           |    2 +-
 Geo/GEdge.cpp                                 |   33 +-
 Geo/GEdge.h                                   |    6 +-
 Geo/GEdgeCompound.cpp                         |    2 +-
 Geo/GEdgeCompound.h                           |    2 +-
 Geo/GEdgeLoop.cpp                             |    2 +-
 Geo/GEdgeLoop.h                               |    2 +-
 Geo/GEntity.cpp                               |   45 +-
 Geo/GEntity.h                                 |    6 +-
 Geo/GFace.cpp                                 |   33 +-
 Geo/GFace.h                                   |   43 +-
 Geo/GFaceCompound.cpp                         |    2 +-
 Geo/GFaceCompound.h                           |    2 +-
 Geo/GModel.cpp                                |  207 +--
 Geo/GModel.h                                  |   32 +-
 Geo/GModelFactory.cpp                         |    2 +-
 Geo/GModelFactory.h                           |    2 +-
 Geo/GModelIO_ACIS.cpp                         |    2 +-
 Geo/GModelIO_CGNS.cpp                         |    2 +-
 Geo/GModelIO_Fourier.cpp                      |    2 +-
 Geo/GModelIO_Fourier.h                        |    2 +-
 Geo/GModelIO_Geo.cpp                          |    2 +-
 Geo/GModelIO_MED.cpp                          |   56 +-
 Geo/GModelIO_Mesh.cpp                         |   13 +-
 Geo/GModelIO_OCC.cpp                          |    2 +-
 Geo/GModelIO_OCC.h                            |    2 +-
 Geo/GModelVertexArrays.cpp                    |    2 +-
 Geo/GPoint.cpp                                |   18 +-
 Geo/GPoint.h                                  |    5 +-
 Geo/GRegion.cpp                               |   26 +-
 Geo/GRegion.h                                 |   25 +-
 Geo/GRegionCompound.cpp                       |    2 +-
 Geo/GRegionCompound.h                         |    2 +-
 Geo/GVertex.cpp                               |   17 +-
 Geo/GVertex.h                                 |    4 +-
 Geo/Geo.cpp                                   |    2 +-
 Geo/Geo.h                                     |    2 +-
 Geo/GeoInterpolation.cpp                      |    2 +-
 Geo/GeoInterpolation.h                        |    2 +-
 Geo/GeoStringInterface.cpp                    |    2 +-
 Geo/GeoStringInterface.h                      |    2 +-
 Geo/GeomMeshMatcher.cpp                       |    2 +-
 Geo/GeomMeshMatcher.h                         |    2 +-
 Geo/Homology.cpp                              |    2 +-
 Geo/Homology.h                                |    2 +-
 Geo/MEdge.h                                   |    2 +-
 Geo/MEdgeHash.h                               |    2 +-
 Geo/MElement.cpp                              |   51 +-
 Geo/MElement.h                                |   12 +-
 Geo/MElementCut.cpp                           |    2 +-
 Geo/MElementCut.h                             |    2 +-
 Geo/MElementOctree.cpp                        |    2 +-
 Geo/MElementOctree.h                          |    2 +-
 Geo/MFace.cpp                                 |    2 +-
 Geo/MFace.h                                   |    2 +-
 Geo/MFaceHash.h                               |    2 +-
 Geo/MHexahedron.cpp                           |    2 +-
 Geo/MHexahedron.h                             |   13 +-
 Geo/MLine.cpp                                 |   27 +-
 Geo/MLine.h                                   |    4 +-
 Geo/MPoint.h                                  |    2 +-
 Geo/MPrism.cpp                                |   32 +-
 Geo/MPrism.h                                  |   15 +-
 Geo/MPyramid.cpp                              |    2 +-
 Geo/MPyramid.h                                |   12 +-
 Geo/MQuadrangle.cpp                           |   27 +-
 Geo/MQuadrangle.h                             |   16 +-
 Geo/MTetrahedron.cpp                          |    2 +-
 Geo/MTetrahedron.h                            |   12 +-
 Geo/MTriangle.cpp                             |   31 +-
 Geo/MTriangle.h                               |   14 +-
 Geo/MVertex.cpp                               |   33 +-
 Geo/MVertex.h                                 |    7 +-
 Geo/MVertexPositionSet.h                      |    2 +-
 Geo/MZone.cpp                                 |    2 +-
 Geo/MZone.h                                   |    2 +-
 Geo/MZoneBoundary.cpp                         |    2 +-
 Geo/MZoneBoundary.h                           |    2 +-
 Geo/OCCEdge.cpp                               |    2 +-
 Geo/OCCEdge.h                                 |    2 +-
 Geo/OCCFace.cpp                               |    2 +-
 Geo/OCCFace.h                                 |    2 +-
 Geo/OCCIncludes.h                             |    2 +-
 Geo/OCCRegion.cpp                             |    2 +-
 Geo/OCCRegion.h                               |    2 +-
 Geo/OCCVertex.cpp                             |    2 +-
 Geo/OCCVertex.h                               |    2 +-
 Geo/OCC_Connect.cpp                           |    2 +-
 Geo/OCC_Connect.h                             |    2 +-
 Geo/Pair.h                                    |    2 +-
 Geo/Range.h                                   |    2 +-
 Geo/SBoundingBox3d.h                          |    2 +-
 Geo/SOrientedBoundingBox.cpp                  |    2 +-
 Geo/SOrientedBoundingBox.h                    |    2 +-
 Geo/SPoint2.h                                 |    2 +-
 Geo/SPoint3.h                                 |    2 +-
 Geo/STensor3.h                                |    2 +-
 Geo/SVector3.h                                |    2 +-
 Geo/discreteEdge.cpp                          |    2 +-
 Geo/discreteEdge.h                            |    2 +-
 Geo/discreteFace.cpp                          |    2 +-
 Geo/discreteFace.h                            |    2 +-
 Geo/discreteRegion.cpp                        |    2 +-
 Geo/discreteRegion.h                          |    2 +-
 Geo/discreteVertex.h                          |    2 +-
 Geo/findLinks.cpp                             |    2 +-
 Geo/findLinks.h                               |    2 +-
 Geo/fourierEdge.cpp                           |    2 +-
 Geo/fourierEdge.h                             |    2 +-
 Geo/fourierFace.cpp                           |    2 +-
 Geo/fourierFace.h                             |    2 +-
 Geo/fourierProjectionFace.cpp                 |    2 +-
 Geo/fourierProjectionFace.h                   |    2 +-
 Geo/fourierVertex.h                           |    2 +-
 Geo/gmshEdge.cpp                              |    2 +-
 Geo/gmshEdge.h                                |    2 +-
 Geo/gmshFace.cpp                              |    2 +-
 Geo/gmshFace.h                                |    2 +-
 Geo/gmshLevelset.h                            |    2 +-
 Geo/gmshRegion.cpp                            |    2 +-
 Geo/gmshRegion.h                              |    2 +-
 Geo/gmshSurface.cpp                           |    2 +-
 Geo/gmshSurface.h                             |    2 +-
 Geo/gmshVertex.cpp                            |    2 +-
 Geo/gmshVertex.h                              |    2 +-
 Geo/partitionEdge.h                           |    2 +-
 Geo/partitionFace.h                           |    2 +-
 Geo/partitionVertex.h                         |    2 +-
 Graphics/CMakeLists.txt                       |    2 +-
 Graphics/Camera.cpp                           |    2 +-
 Graphics/Camera.h                             |    2 +-
 Graphics/PixelBuffer.h                        |    2 +-
 Graphics/ReadImg.cpp                          |    2 +-
 Graphics/ReadImg.h                            |    2 +-
 Graphics/drawAxes.cpp                         |    2 +-
 Graphics/drawContext.cpp                      |    3 +-
 Graphics/drawContext.h                        |    2 +-
 Graphics/drawGeom.cpp                         |    2 +-
 Graphics/drawGlyph.cpp                        |    2 +-
 Graphics/drawGraph2d.cpp                      |    2 +-
 Graphics/drawMesh.cpp                         |    2 +-
 Graphics/drawPost.cpp                         |   29 +-
 Graphics/drawScales.cpp                       |    2 +-
 Graphics/gl2gif.cpp                           |    2 +-
 Graphics/gl2gif.h                             |    2 +-
 Graphics/gl2jpeg.cpp                          |    2 +-
 Graphics/gl2jpeg.h                            |    2 +-
 Graphics/gl2png.cpp                           |    5 +-
 Graphics/gl2png.h                             |    2 +-
 Graphics/gl2ppm.cpp                           |    2 +-
 Graphics/gl2ppm.h                             |    2 +-
 Graphics/gl2yuv.cpp                           |    2 +-
 Graphics/gl2yuv.h                             |    2 +-
 Mesh/BDS.cpp                                  |    2 +-
 Mesh/BDS.h                                    |    2 +-
 Mesh/BackgroundMesh.cpp                       |    2 +-
 Mesh/BackgroundMesh.h                         |    2 +-
 Mesh/BoundaryLayers.cpp                       |    2 +-
 Mesh/BoundaryLayers.h                         |    2 +-
 Mesh/CMakeLists.txt                           |    2 +-
 Mesh/Field.cpp                                |    2 +-
 Mesh/Field.h                                  |    2 +-
 Mesh/Generator.cpp                            |   14 +-
 Mesh/Generator.h                              |    2 +-
 Mesh/HighOrder.cpp                            |    4 +-
 Mesh/HighOrder.h                              |    2 +-
 Mesh/highOrderSmoother.cpp                    |    2 +-
 Mesh/highOrderSmoother.h                      |    2 +-
 Mesh/meshGEdge.cpp                            |    2 +-
 Mesh/meshGEdge.h                              |    2 +-
 Mesh/meshGEdgeExtruded.cpp                    |    2 +-
 Mesh/meshGFace.cpp                            |   14 +-
 Mesh/meshGFace.h                              |    2 +-
 Mesh/meshGFaceBDS.cpp                         |    2 +-
 Mesh/meshGFaceBDS.h                           |    2 +-
 Mesh/meshGFaceBamg.cpp                        |    2 +-
 Mesh/meshGFaceBamg.h                          |    2 +-
 Mesh/meshGFaceDelaunayInsertion.cpp           |    2 +-
 Mesh/meshGFaceDelaunayInsertion.h             |    2 +-
 Mesh/meshGFaceExtruded.cpp                    |    2 +-
 Mesh/meshGFaceLloyd.cpp                       |    8 +-
 Mesh/meshGFaceLloyd.h                         |    2 +-
 Mesh/meshGFaceOptimize.cpp                    |   25 +-
 Mesh/meshGFaceOptimize.h                      |    3 +-
 Mesh/meshGFaceQuadrilateralize.cpp            |    2 +-
 Mesh/meshGFaceQuadrilateralize.h              |    2 +-
 Mesh/meshGFaceTransfinite.cpp                 |    2 +-
 Mesh/meshGRegion.cpp                          |    2 +-
 Mesh/meshGRegion.h                            |    2 +-
 Mesh/meshGRegionCarveHole.cpp                 |    2 +-
 Mesh/meshGRegionDelaunayInsertion.cpp         |    2 +-
 Mesh/meshGRegionDelaunayInsertion.h           |    2 +-
 Mesh/meshGRegionExtruded.cpp                  |    2 +-
 Mesh/meshGRegionLocalMeshMod.cpp              |    2 +-
 Mesh/meshGRegionLocalMeshMod.h                |    2 +-
 Mesh/meshGRegionTransfinite.cpp               |    2 +-
 Mesh/meshPartition.cpp                        |    2 +-
 Mesh/meshPartition.h                          |    2 +-
 Mesh/meshPartitionObjects.h                   |    2 +-
 Mesh/meshPartitionOptions.cpp                 |   23 -
 Mesh/meshPartitionOptions.h                   |    3 +-
 Mesh/meshRefine.cpp                           |    2 +-
 Mesh/multiscalePartition.h                    |    2 +-
 Mesh/qualityMeasures.cpp                      |    2 +-
 Mesh/qualityMeasures.h                        |    2 +-
 NonLinearSolver/CMakeLists.txt                |    2 +-
 NonLinearSolver/internalPoints/CMakeLists.txt |    2 +-
 Numeric/CMakeLists.txt                        |    2 +-
 Numeric/DivideAndConquer.cpp                  |   42 +-
 Numeric/DivideAndConquer.h                    |    4 +-
 Numeric/Gauss.cpp                             |   56 +-
 Numeric/Gauss.h                               |    6 +-
 Numeric/GaussLegendre1D.h                     |    2 +-
 Numeric/GaussLegendreSimplex.cpp              |    2 +-
 Numeric/GaussQuadratureHex.cpp                |    2 +-
 Numeric/GaussQuadratureLin.cpp                |    2 +-
 Numeric/GaussQuadraturePri.cpp                |    2 +-
 Numeric/GaussQuadratureQuad.cpp               |    2 +-
 Numeric/GaussQuadratureTet.cpp                |    2 +-
 Numeric/GaussQuadratureTri.cpp                |    2 +-
 Numeric/Iso.cpp                               |    2 +-
 Numeric/Iso.h                                 |    2 +-
 Numeric/JacobianBasis.cpp                     |    2 +-
 Numeric/JacobianBasis.h                       |    2 +-
 Numeric/Numeric.cpp                           |    2 +-
 Numeric/Numeric.h                             |    2 +-
 Numeric/cartesian.h                           |    2 +-
 Numeric/fullMatrix.cpp                        |   42 +-
 Numeric/fullMatrix.h                          |    4 +-
 Numeric/mathEvaluator.cpp                     |    2 +-
 Numeric/mathEvaluator.h                       |    2 +-
 Numeric/polynomialBasis.cpp                   |   50 +-
 Numeric/polynomialBasis.h                     |   29 +-
 Numeric/robustPredicates.h                    |    2 +-
 Numeric/simpleFunction.h                      |   28 +-
 Parser/CMakeLists.txt                         |    2 +-
 Parser/FunctionManager.cpp                    |    2 +-
 Parser/FunctionManager.h                      |    2 +-
 Parser/Gmsh.l                                 |    2 +-
 Parser/Gmsh.tab.cpp                           |    2 +-
 Parser/Gmsh.y                                 |    2 +-
 Parser/Gmsh.yy.cpp                            |    2 +-
 Parser/Parser.h                               |    2 +-
 Plugin/Plugin.cpp                             |    4 +-
 Post/CMakeLists.txt                           |    2 +-
 Post/ColorTable.cpp                           |    2 +-
 Post/ColorTable.h                             |    2 +-
 Post/OctreePost.cpp                           |    2 +-
 Post/OctreePost.h                             |    2 +-
 Post/PView.cpp                                |   18 +-
 Post/PView.h                                  |    4 +-
 Post/PViewData.cpp                            |   81 +-
 Post/PViewData.h                              |    9 +-
 Post/PViewDataGModel.cpp                      |    2 +-
 Post/PViewDataGModel.h                        |    2 +-
 Post/PViewDataGModelIO.cpp                    |    2 +-
 Post/PViewDataIO.cpp                          |    2 +-
 Post/PViewDataList.cpp                        |    2 +-
 Post/PViewDataList.h                          |    2 +-
 Post/PViewDataListIO.cpp                      |    2 +-
 Post/PViewDataRemote.h                        |    2 +-
 Post/PViewFactory.cpp                         |   16 +-
 Post/PViewFactory.h                           |    9 +-
 Post/PViewIO.cpp                              |    2 +-
 Post/PViewOptions.cpp                         |    2 +-
 Post/PViewOptions.h                           |    2 +-
 Post/PViewVertexArrays.cpp                    |   10 +-
 Post/adaptiveData.cpp                         |    2 +-
 Post/adaptiveData.h                           |    2 +-
 Post/shapeFunctions.cpp                       |    2 +-
 Post/shapeFunctions.h                         |    2 +-
 Qt/CMakeLists.txt                             |    2 +-
 Qt/Main.cpp                                   |    2 +-
 Qt/QGui.cpp                                   |    2 +-
 Qt/QGui.h                                     |    2 +-
 README.txt                                    |    4 +-
 Solver/CMakeLists.txt                         |    3 +-
 Solver/SElement.h                             |    2 +-
 Solver/crossConfTerm.h                        |    2 +-
 Solver/distanceTerm.h                         |    2 +-
 Solver/dofManager.h                           |    2 +-
 Solver/eigenSolver.cpp                        |    2 +-
 Solver/eigenSolver.h                          |    2 +-
 Solver/elasticitySolver.cpp                   |  112 +-
 Solver/elasticitySolver.h                     |   11 +-
 Solver/elasticityTerm.cpp                     |    2 +-
 Solver/elasticityTerm.h                       |    2 +-
 Solver/femTerm.h                              |    2 +-
 Solver/function.cpp                           |  146 --
 Solver/function.h                             |    4 -
 Solver/helmholtzTerm.h                        |    2 +-
 Solver/laplaceTerm.h                          |    2 +-
 Solver/linearSystem.cpp                       |   53 +-
 Solver/linearSystem.h                         |    5 +-
 Solver/linearSystemCSR.cpp                    |   15 +-
 Solver/linearSystemCSR.h                      |    5 +-
 Solver/linearSystemFull.h                     |    2 +-
 Solver/linearSystemGMM.h                      |    2 +-
 Solver/linearSystemPETSc.h                    |    2 +-
 Solver/luaFunction.cpp                        |   10 -
 Solver/luaFunction.h                          |    8 -
 Solver/orthogonalTerm.h                       |    2 +-
 Solver/sparsityPattern.cpp                    |    2 +-
 Solver/sparsityPattern.h                      |    2 +-
 benchmarks/boolean/wikipedia.py               |    1 +
 benchmarks/extrude/u_shape_boundary_layer.geo |    2 +-
 contrib/ANN/CMakeLists.txt                    |    2 +-
 contrib/Chaco/CMakeLists.txt                  |    2 +-
 contrib/DiscreteIntegration/CMakeLists.txt    |    2 +-
 contrib/Fl_Tree/CMakeLists.txt                |    2 +-
 contrib/MathEx/CMakeLists.txt                 |    2 +-
 contrib/Metis/CMakeLists.txt                  |    2 +-
 contrib/NativeFileChooser/CMakeLists.txt      |    2 +-
 contrib/Netgen/CMakeLists.txt                 |    2 +-
 contrib/Tetgen/CMakeLists.txt                 |    2 +-
 contrib/TetgenNew/CMakeLists.txt              |    2 +-
 contrib/bamg/CMakeLists.txt                   |    2 +-
 contrib/bamg/bamglib/MeshRead.cpp             |    2 +-
 contrib/bamg/bamglib/MeshWrite.cpp            |    4 +-
 contrib/bamg/bamglib/Meshio.cpp               |    6 +-
 contrib/kbipack/CMakeLists.txt                |    2 +-
 contrib/mpeg_encode/CMakeLists.txt            |    2 +-
 contrib/mpeg_encode/bsearch.cpp               |    2 +-
 doc/gmsh.1                                    |    3 -
 doc/texinfo/gmsh.texi                         |    4 +-
 442 files changed, 703 insertions(+), 4072 deletions(-)
 delete mode 100644 Common/Bindings.cpp
 delete mode 100644 Common/Bindings.h
 delete mode 100644 Common/DummyBindings.h
 delete mode 100644 Common/LuaBindings.cpp
 delete mode 100644 Common/LuaBindings.h
 delete mode 100644 Solver/luaFunction.cpp
 delete mode 100644 Solver/luaFunction.h

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7c8312dfab..8d932db61e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,7 +30,6 @@ option(ENABLE_FOURIER_MODEL "Enable Fourier geometrical models" OFF)
 option(ENABLE_GMM "Enable GMM linear algebra solvers" ON)
 option(ENABLE_GRAPHICS "Compile-in OpenGL graphics even if there is no GUI" OFF)
 option(ENABLE_KBIPACK "Enable Kbipack for homology solver" ON)
-option(ENABLE_LUA "Enable the Programming Language Lua (deprecated)" OFF)
 option(ENABLE_MATCH "Enable Minimum cost perfect matching algo" ON)
 option(ENABLE_MATHEX "Enable MathEx expression parser" ON)
 option(ENABLE_MED "Enable MED mesh and post-processing file formats" ON)
@@ -610,18 +609,6 @@ if(ENABLE_TAUCS)
   endif(TAUCS_LIB)
 endif(ENABLE_TAUCS)
 
-if(ENABLE_LUA)
-  find_library(LUA_LIB NAMES lua lua50 lua5.1 PATH_SUFFIXES lib)
-  if(LUA_LIB)
-    find_path(LUA_INC "lua.h" PATH_SUFFIXES src include lua5.1)
-    if(LUA_INC)
-      set_config_option(HAVE_LUA "Lua")
-      list(APPEND EXTERNAL_LIBRARIES ${LUA_LIB})
-      list(APPEND EXTERNAL_INCLUDES ${LUA_INC})
-    endif(LUA_INC)
-  endif(LUA_LIB)
-endif(ENABLE_LUA)
-
 if(ENABLE_PETSC)
   set(ENV_PETSC_DIR $ENV{PETSC_DIR})
   set(ENV_PETSC_ARCH $ENV{PETSC_ARCH})
@@ -764,19 +751,6 @@ if(ENABLE_OSMESA)
   endif(OSMESA_LIB)
 endif(ENABLE_OSMESA)
 
-if(HAVE_LUA AND ENABLE_READLINE)
-  set(READLINE_REQUIRED readline curses)
-  find_all_libraries(READLINE_LIB READLINE_REQUIRED PATH lib)
-  if(READLINE_LIB)
-    find_path(READLINE_INC "readline.h" PATH_SUFFIXES src readline include)
-    if(READLINE_INC)
-      set_config_option(HAVE_READLINE "Readline")
-      list(APPEND EXTERNAL_LIBRARIES ${READLINE_LIB})
-      list(APPEND EXTERNAL_INCLUDES ${READLINE_INC})
-    endif(READLINE_INC)
-  endif(READLINE_LIB)
-endif(HAVE_LUA AND ENABLE_READLINE)
-
 check_function_exists(vsnprintf HAVE_VSNPRINTF)
 if(NOT HAVE_VSNPRINTF)
   set_config_option(HAVE_NO_VSNPRINTF "NoVsnprintf")
@@ -1181,6 +1155,5 @@ message("Run 'ccmake ${CMAKE_CURRENT_SOURCE_DIR}' to fine-tune the configuration
 message("")
 
 mark_as_advanced(BISON FLEX GMP_LIB GMSH_EXTRA_VERSION HDF5_LIB MAKEINFO 
-                 MED_LIB OCC_INC SZ_LIB TAUCS_LIB LUA_LIB ACIS_LIB TEXI2PDF
-                 READLINE_LIB)
+                 MED_LIB OCC_INC SZ_LIB TAUCS_LIB ACIS_LIB TEXI2PDF)
 
diff --git a/Common/Bindings.cpp b/Common/Bindings.cpp
deleted file mode 100644
index 22a25b9ab4..0000000000
--- a/Common/Bindings.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
-//
-// See the LICENSE.txt file for license information. Please report all
-// bugs and problems to <gmsh@geuz.org>.
-//
-// Contributor(s):
-//   Jonathan Lambrechts
-//
-
-#include <stdarg.h>
-#include <stdio.h>
-#include "Bindings.h"
-
-void methodBinding::setArgNames(const char *arg1, ...)
-{
-  va_list ap;
-  va_start(ap, arg1);
-  const char *name=arg1;
-  while(name != NULL){
-    _argNames.push_back(name);
-    name = va_arg(ap, const char *);
-  }
-  va_end(ap);
-}
diff --git a/Common/Bindings.h b/Common/Bindings.h
deleted file mode 100644
index 3d0fa3306f..0000000000
--- a/Common/Bindings.h
+++ /dev/null
@@ -1,30 +0,0 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
-//
-// See the LICENSE.txt file for license information. Please report all
-// bugs and problems to <gmsh@geuz.org>.
-
-#ifndef _BINDINGS_H_
-#define _BINDINGS_H_
-
-#include <string>
-#include <vector>
-#include <typeinfo>
-#include "GmshConfig.h"
-
-class methodBinding{
-  std::string _description;
-  std::vector<std::string> _argNames;
-  public:
-  inline const std::vector<std::string> &getArgNames() const { return _argNames; }
-  void setArgNames(const char * arg1, ...);
-  void setDescription(std::string description){ _description = description; }
-  inline const std::string getDescription() const { return _description; }
-};
-
-#if defined(HAVE_LUA)
-#include "LuaBindings.h"
-#else // no bindings
-#include "DummyBindings.h"
-#endif
-
-#endif
diff --git a/Common/CMakeLists.txt b/Common/CMakeLists.txt
index 9133094fb1..91a8906cb0 100644
--- a/Common/CMakeLists.txt
+++ b/Common/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
@@ -13,7 +13,6 @@ set(SRC
   OS.cpp
   OpenFile.cpp
   CreateFile.cpp
-  LuaBindings.cpp
   VertexArray.cpp
   SmoothData.cpp
   Octree.cpp 
@@ -23,7 +22,6 @@ set(SRC
   TreeUtils.cpp avl.cpp
   MallocUtils.cpp
   ConnectionManager.cpp
-  Bindings.cpp
 )
 
 file(GLOB HDR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.h) 
diff --git a/Common/Colors.h b/Common/Colors.h
index f0babb7431..bf46fb000d 100644
--- a/Common/Colors.h
+++ b/Common/Colors.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp
index fa00d8454a..416e6bff59 100644
--- a/Common/CommandLine.cpp
+++ b/Common/CommandLine.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -80,7 +80,7 @@ void PrintUsage(const char *name)
   Msg::Direct("  -smoothRatio float    Set smoothing ration between mesh sizes at nodes of a same edge (only used in bamg)");
   Msg::Direct("  -clcurv               Automatically compute element sizes from curvatures");
   Msg::Direct("  -epslc1d              Set the accuracy of the evaluation of the LCFIELD for 1D mesh");
-  Msg::Direct("  -swapangle            Set the treshold angle (in degree) between two adjacent faces");
+  Msg::Direct("  -swapangle            Set the threshold angle (in degree) between two adjacent faces");
   Msg::Direct("                          below which a swap is allowed");
   Msg::Direct("  -rand float           Set random perturbation factor");
   Msg::Direct("  -bgm file             Load background mesh from file");
@@ -100,9 +100,6 @@ void PrintUsage(const char *name)
   Msg::Direct("  -                     Parse input files, then exit");
 #if defined(HAVE_FLTK)
   Msg::Direct("  -a, -g, -m, -s, -p    Start in automatic, geometry, mesh, solver or post-processing mode");
-#endif
-#if defined(HAVE_LUA)
-  Msg::Direct("  -lua                  Start an interactive lua session");
 #endif
   Msg::Direct("  -pid                  Print process id on stdout");
   Msg::Direct("  -listen               Always listen to incoming connection requests");
@@ -467,7 +464,7 @@ void GetOptions(int argc, char *argv[])
         if(argv[i]) {
           CTX::instance()->mesh.allowSwapEdgeAngle = atof(argv[i++]);
           if(CTX::instance()->mesh.allowSwapEdgeAngle <= 0.0)
-            Msg::Fatal("Treshold angle for edge swap must be > 0");
+            Msg::Fatal("Threshold angle for edge swap must be > 0");
         }
         else
           Msg::Fatal("Missing number");
@@ -620,7 +617,7 @@ void GetOptions(int argc, char *argv[])
       }
       else if(!strcmp(argv[i] + 1, "help") || !strcmp(argv[i] + 1, "-help")) {
         fprintf(stderr, "Gmsh, a 3D mesh generator with pre- and post-processing facilities\n");
-        fprintf(stderr, "Copyright (C) 1997-2010 Christophe Geuzaine and Jean-Francois Remacle\n");
+        fprintf(stderr, "Copyright (C) 1997-2011 Christophe Geuzaine and Jean-Francois Remacle\n");
         PrintUsage(argv[0]);
         Msg::Exit(0);
       }
@@ -715,12 +712,6 @@ void GetOptions(int argc, char *argv[])
           Msg::Fatal("Missing argument");
       }
 #endif
-#if defined (HAVE_LUA)
-      else if(!strcmp(argv[i] + 1, "lua")) {
-        i++;
-        CTX::instance()->batch = -4;
-      }
-#endif
 #if defined(__APPLE__)
       else if(!strncmp(argv[i] + 1, "psn", 3)) {
         // The Mac Finder launches programs with a special command
diff --git a/Common/CommandLine.h b/Common/CommandLine.h
index b2e08a3a21..ad225c2170 100644
--- a/Common/CommandLine.h
+++ b/Common/CommandLine.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/ConnectionManager.cpp b/Common/ConnectionManager.cpp
index 1a1e885e49..6285b9dc84 100644
--- a/Common/ConnectionManager.cpp
+++ b/Common/ConnectionManager.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/ConnectionManager.h b/Common/ConnectionManager.h
index 89e8ac1017..083a11d1f5 100644
--- a/Common/ConnectionManager.h
+++ b/Common/ConnectionManager.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Context.cpp b/Common/Context.cpp
index e013fd487c..8cda494708 100644
--- a/Common/Context.cpp
+++ b/Common/Context.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Context.h b/Common/Context.h
index 40f90fe3a4..466f44274c 100644
--- a/Common/Context.h
+++ b/Common/Context.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -11,8 +11,6 @@
 #include "CGNSOptions.h"
 #include "meshPartitionOptions.h"
 
-class binding;
-
 // The interface-independent context.
 
 struct contextMeshOptions {
diff --git a/Common/CreateFile.cpp b/Common/CreateFile.cpp
index 3359380654..7235f67df2 100644
--- a/Common/CreateFile.cpp
+++ b/Common/CreateFile.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/CreateFile.h b/Common/CreateFile.h
index e7ee8054f8..37304f6be6 100644
--- a/Common/CreateFile.h
+++ b/Common/CreateFile.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index b115a8e3ca..9acaa546ba 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -939,11 +939,11 @@ StringXNumber GeometryOptions_Number[] = {
   { F|O, "OCCConnectFaces" , opt_geometry_occ_connect_faces , 0. , 
     "Cut and connect faces in STEP, IGES and BRep models" },
   { F,   "OffsetX" , opt_geometry_offset0 , 0. , 
-    "Model diplay offset along X-axis (in model coordinates)" },
+    "Model display offset along X-axis (in model coordinates)" },
   { F,   "OffsetY" , opt_geometry_offset1 , 0. , 
-    "Model diplay offset along Y-axis (in model coordinates)" },
+    "Model display offset along Y-axis (in model coordinates)" },
   { F,   "OffsetZ" , opt_geometry_offset2 , 0. , 
-    "Model diplay offset along Z-axis (in model coordinates)" },
+    "Model display offset along Z-axis (in model coordinates)" },
   { F|O, "OldCircle" , opt_geometry_old_circle , 0. , 
     "Use old circle description (compatibility option for old Gmsh geometries)" },
   { F|O, "OldNewReg" , opt_geometry_old_newreg , 1. , 
@@ -1024,7 +1024,7 @@ StringXNumber MeshOptions_Number[] = {
   { F|O, "AnisoMax" , opt_mesh_aniso_max, 1.e33,
     "Maximum anisotropy of the mesh" },
   { F|O, "AllowSwapAngle" , opt_mesh_allow_swap_edge_angle , 10.0 ,
-    "Treshold angle (in degrees) between faces normals under which we allow "
+    "Threshold angle (in degrees) between faces normals under which we allow "
     "an edge swap" }, 
 
   { F|O, "BdfFieldFormat" , opt_mesh_bdf_field_format , 1. , 
diff --git a/Common/DummyBindings.h b/Common/DummyBindings.h
deleted file mode 100644
index d6c005e27c..0000000000
--- a/Common/DummyBindings.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
-//
-// See the LICENSE.txt file for license information. Please report all
-// bugs and problems to <gmsh@geuz.org>.
-
-#ifndef _DUMMY_BINDINGS_H_
-#define _DUMMY_BINDINGS_H_
-
-class classBinding {
- public:
-  void setDescription(std::string description){}
-  template<typename parentType>
-  void setParentClass(){}
-  template <typename cb>
-  methodBinding *addMethod(std::string n, cb f){ return new methodBinding(); }
-  template <typename tObj, typename t0, typename t1, typename t2, typename t3, 
-            typename t4, typename t5>
-  methodBinding *setConstructor(){ return 0; }
-  template <typename tObj, typename t0, typename t1, typename t2, typename t3, 
-            typename t4>
-  methodBinding *setConstructor(){ return 0; }
-  template <typename tObj, typename t0, typename t1, typename t2, typename t3>
-  methodBinding *setConstructor(){ return 0; }
-  template <typename tObj, typename t0, typename t1, typename t2>
-  methodBinding *setConstructor(){ return 0; }
-  template <typename tObj, typename t0, typename t1>
-  methodBinding *setConstructor(){ return 0; }
-  template <typename tObj, typename t0>
-  methodBinding *setConstructor(){ return 0; }
-  template<typename tObj>
-  methodBinding *setConstructor(){ return 0; }
-};
-
-class binding {
- public:
-  template<class t>
-  classBinding *addClass(std::string className){ return new classBinding(); }
-};
-
-#endif
diff --git a/Common/Gmsh.cpp b/Common/Gmsh.cpp
index 9ec3c4faf4..b62a807c46 100644
--- a/Common/Gmsh.cpp
+++ b/Common/Gmsh.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -35,10 +35,6 @@
 #include "drawContext.h"
 #endif
 
-#if defined(HAVE_LUA)
-#include "LuaBindings.h"
-#endif
-
 int GmshInitialize(int argc, char **argv)
 {
   // we need at least one model during option parsing
@@ -154,12 +150,6 @@ int GmshBatch()
   }
 #endif
 
-#if defined(HAVE_LUA)
-  if(CTX::instance()->batch == -4){
-    binding::instance()->interactiveSession();
-  }
-  else 
-#endif 
   if(CTX::instance()->batch == -3){
     GmshRemote();
   }
@@ -257,9 +247,6 @@ int GmshFLTK(int argc, char **argv)
       Msg::Error("Invalid background mesh (no view)");
   }
 
-  // draw the scene
-  drawContext::global()->draw();
-
   // listen to external solvers
   if(CTX::instance()->solver.listen){
     ConnectionManager::get(-1)->name = "unknown";
diff --git a/Common/Gmsh.h b/Common/Gmsh.h
index 798dcdbaf9..0a2017449d 100644
--- a/Common/Gmsh.h
+++ b/Common/Gmsh.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -24,6 +24,6 @@ int GmshMergeFile(std::string fileName);
 int GmshWriteFile(std::string fileName);
 int GmshFinalize();
 int GmshBatch();
-int GmshFLTK(int argc, char **argv);
+int GmshFLTK(int argc=0, char **argv=0);
 
 #endif
diff --git a/Common/GmshConfig.h.in b/Common/GmshConfig.h.in
index 1823f15985..020e34a450 100644
--- a/Common/GmshConfig.h.in
+++ b/Common/GmshConfig.h.in
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -26,7 +26,6 @@
 #cmakedefine HAVE_LIBJPEG
 #cmakedefine HAVE_LIBPNG
 #cmakedefine HAVE_LIBZ
-#cmakedefine HAVE_LUA
 #cmakedefine HAVE_MATCH
 #cmakedefine HAVE_MATHEX
 #cmakedefine HAVE_MED
diff --git a/Common/GmshDefines.h b/Common/GmshDefines.h
index 60ad590ff0..b5b3c6a6fe 100644
--- a/Common/GmshDefines.h
+++ b/Common/GmshDefines.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/GmshMessage.cpp b/Common/GmshMessage.cpp
index a7c6357060..a77411e8b8 100644
--- a/Common/GmshMessage.cpp
+++ b/Common/GmshMessage.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -606,21 +606,3 @@ int Msg::GetThreadNum(){ return 0; }
 
 #endif
 
-#include "Bindings.h"
-void Msg::registerBindings (binding *b)
-{
-  classBinding *cb = b->addClass<Msg>("Msg");
-  cb->setDescription("a class to manage messages, intialisations of libraries "
-                     "(like MPI) and mpi rank and size.");
-  methodBinding *mb;
-  mb = cb->setConstructor<Msg>();
-  mb->setDescription("Msg is full static class, instances do not contain anything "
-                     "but they are needed to call the static functions from lua");
-  mb = cb->addMethod("getCommRank", &Msg::GetCommRank);
-  mb->setDescription("return the id of this mpi process");
-  mb = cb->addMethod("getCommSize", &Msg::GetCommSize);
-  mb->setDescription("return the number of mpi processes");
-  mb = cb->addMethod("barrier", &Msg::Barrier);
-  mb->setDescription("an MPI barrier : all processes wait untill they all reach "
-                     "this points");
-}
diff --git a/Common/GmshMessage.h b/Common/GmshMessage.h
index 6a9d8d60b8..66c4ae6ca3 100644
--- a/Common/GmshMessage.h
+++ b/Common/GmshMessage.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -19,7 +19,6 @@ class GmshMessage{
   virtual ~GmshMessage(){}
   virtual void operator()(std::string level, std::string message){}
 };
-class binding;
 
 // a class to manage messages
 class Msg {
@@ -81,7 +80,6 @@ class Msg {
   static void InitClient(std::string sockname);
   static GmshClient *GetClient(){ return _client; }
   static void FinalizeClient();
-  static void registerBindings (binding *b);
 };
 
 #endif
diff --git a/Common/GmshRemote.cpp b/Common/GmshRemote.cpp
index 8c6156230f..4dd098fba4 100644
--- a/Common/GmshRemote.cpp
+++ b/Common/GmshRemote.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/GmshRemote.h b/Common/GmshRemote.h
index 73fdf3325b..bc8927091c 100644
--- a/Common/GmshRemote.h
+++ b/Common/GmshRemote.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/GmshSocket.h b/Common/GmshSocket.h
index 0021b49889..6d46f035a8 100644
--- a/Common/GmshSocket.h
+++ b/Common/GmshSocket.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // Permission is hereby granted, free of charge, to any person
 // obtaining a copy of this software and associated documentation
diff --git a/Common/GmshVersion.h.in b/Common/GmshVersion.h.in
index c3be2e2d7d..d2985979b0 100644
--- a/Common/GmshVersion.h.in
+++ b/Common/GmshVersion.h.in
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Hash.h b/Common/Hash.h
index d7008d73ea..bf4ceace19 100644
--- a/Common/Hash.h
+++ b/Common/Hash.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/HashMap.h b/Common/HashMap.h
index b5ce1a2576..7862942bdb 100644
--- a/Common/HashMap.h
+++ b/Common/HashMap.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/ListUtils.cpp b/Common/ListUtils.cpp
index 818f3ae569..101a1791d2 100644
--- a/Common/ListUtils.cpp
+++ b/Common/ListUtils.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/ListUtils.h b/Common/ListUtils.h
index 2480e1c480..af4f69102d 100644
--- a/Common/ListUtils.h
+++ b/Common/ListUtils.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/LuaBindings.cpp b/Common/LuaBindings.cpp
deleted file mode 100644
index 6d6c4fe586..0000000000
--- a/Common/LuaBindings.cpp
+++ /dev/null
@@ -1,469 +0,0 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
-//
-// See the LICENSE.txt file for license information. Please report all
-// bugs and problems to <gmsh@geuz.org>.
-//
-// Contributor(s):
-//   Jonathan Lambrechts
-//
-
-#include "GmshConfig.h"
-
-#if defined(HAVE_LUA)
-#include <iostream>
-#include <string>
-#include "Gmsh.h"
-#include "Context.h"
-#include "MVertex.h"
-#include "MElement.h"
-#include "MTriangle.h"
-#include "MQuadrangle.h"
-#include "MPrism.h"
-#include "MLine.h"
-#include "GFace.h"
-#include "DivideAndConquer.h"
-#include "Bindings.h"
-#include "luaFunction.h"
-#include "function.h"
-#include "GModel.h"
-#include "GPoint.h"
-#include "Bindings.h"
-#include "GmshMessage.h"
-#include "Options.h"
-#include "polynomialBasis.h"
-#include "Gauss.h"
-#include "meshPartitionOptions.h"
-#include "meshGFaceOptimize.h"
-#include "meshGFaceLloyd.h"
-
-#if defined(HAVE_OPENGL)
-#include "drawContext.h"
-#endif
-
-#if defined(HAVE_SOLVER)
-#include "elasticitySolver.h"
-#include "linearSystem.h"
-#include "linearSystemCSR.h"
-#endif
-
-#if defined(HAVE_POST)
-#include "PView.h"
-#include "PViewData.h"
-#include "PViewFactory.h"
-#endif
-
-extern "C" {
-#include "lua.h"
-#include "lualib.h"
-#include "lauxlib.h"
-}
-
-#if defined(HAVE_READLINE)
-#include "readline.h"
-#include "history.h"
-#endif
-
-//trivial class to bind options
-class gmshOptions {
-  public:
-  gmshOptions(){}
-  static void colorSet(std::string category, int index, std::string name, int value)
-  {
-    GmshSetOption(category, name, (unsigned int)(value), index);
-  }
-  static int colorGet(std::string category, int index, std::string name)
-  {
-    unsigned int value;
-    GmshGetOption(category, name, value, index);
-    return value;
-  }
-  static double numberGet(std::string category, int index, std::string name)
-  {
-    double value;
-    GmshGetOption(category, name, value, index);
-    return value;
-  }
-  static void numberSet(std::string category, int index, std::string name, double value)
-  {
-    GmshSetOption(category, name, value, index);
-  }
-  static std::string stringGet(std::string category, int index, std::string name)
-  {
-    std::string value;
-    GmshGetOption(category, name, value, index);
-    return value;
-  }
-  static void stringSet(std::string category, int index, std::string name, double value)
-  {
-    GmshSetOption(category, name, value, index);
-  }
-  static void initOptions(){
-    ReInitOptions(0);
-    InitOptionsGUI(0);
-  }
-
-  static void registerBindings(binding *b)
-  {
-    classBinding *cb = b->addClass<gmshOptions>("gmshOptions");
-    cb->setDescription("access the gmsh option database");
-    methodBinding *mb;
-    mb = cb->addMethod("colorSet", &gmshOptions::colorSet);
-    mb->setDescription("set the value of a color (unsigned int) option. This is "
-                       "equivalent to category[index].name = value");
-    mb->setArgNames("category", "index", "name", "value", NULL);
-    mb = cb->addMethod("colorGet", &gmshOptions::colorGet);
-    mb->setDescription("return the value of a color (unsigned int) option. This "
-                       "is equivalent to category[index].name");
-    mb->setArgNames("category", "index", "name", NULL);
-    mb = cb->addMethod("numberSet", &gmshOptions::numberSet);
-    mb->setDescription("set the value of a number option. This is equivalent "
-                       "to category[index].name = value");
-    mb->setArgNames("category", "index", "name", "value", NULL);
-    mb = cb->addMethod("numberGet", &gmshOptions::numberGet);
-    mb->setDescription("return the value of a number option. This is equivalent "
-                       "to category[index].name");
-    mb->setArgNames("category", "index", "name", NULL);
-    mb = cb->addMethod("srtingSet", &gmshOptions::stringSet);
-    mb->setDescription("set the value of a string option. This is equivalent "
-                       "to category[index].name = \"value\"");
-    mb->setArgNames("category", "index", "name", "value", NULL);
-    mb = cb->addMethod("srtingGet", &gmshOptions::stringGet);
-    mb->setDescription("return the value of a string option. This is equivalent "
-                       "to category[index].name");
-    mb->setArgNames("category", "index", "name", NULL);
-
-    mb = cb->addMethod("initOptions", &gmshOptions::initOptions);
-    mb->setDescription("Re-initialize option file");
-    mb->setArgNames(NULL);
-
-    mb = cb->setConstructor<gmshOptions>();
-    mb->setDescription("an instance of gmshOptions is needed to access the database");
-  }
-};
-
-static void reportErrors(lua_State *L, int status)
-{
-  if ( status!=0 ) {
-    std::cerr << "-- " << lua_tostring(L, -1) << std::endl;
-    lua_pop(L, 1); // remove error message
-    printf("exit now\n");
-    exit(1); //we need this for automatic test
-  }
-}
-
-static const char *colorRed = "\033[1;31m";
-static const char *colorGreen = "\033[1;32m";
-static const char *colorBlue = "\033[1;34m";
-static const char *colorDefault = "\033[0m";
-static const char *colorBold = "\033[1m";
-
-static void printMethod(std::string name, luaMethodBinding *mb, bool isConstructor=false)
-{
-  std::vector<std::string> argTypeNames;
-  mb->getArgTypeNames(argTypeNames);
-  std::cout << "  ";
-  if(!isConstructor && name!="delete")
-    std::cout << colorBold<<argTypeNames[0];
-  std::cout << colorBlue << " " << name << colorDefault << colorBold << " (";
-  int count = 0;
-  for(unsigned int i = 1; i < argTypeNames.size(); i++){
-    if(argTypeNames[i] == "-1")
-      continue;
-    if(count != 0)
-      std::cout << ", ";
-    std::cout << colorBold<<argTypeNames[i] << colorDefault;
-    if((int)mb->getArgNames().size() > count)
-      std::cout << " " << mb->getArgNames()[count];
-    count++;
-  }
-  std::cout << colorBold << ")\n" << colorDefault;
-  const std::string description = mb->getDescription();
-  std::cout << (description.empty() ? "no help available" : description) << "\n";
-}
-
-static void listMethods(classBinding *cb)
-{
-  if(cb->methods.size())
-    std::cout << colorGreen << "Methods from " << cb->getClassName() 
-              << colorDefault<< "\n";
-  for(std::map<std::string, luaMethodBinding *>::iterator it = cb->methods.begin();
-      it != cb->methods.end(); it++){
-    printMethod(it->first, it->second);
-  }
-  if(cb->getParent())
-    listMethods(cb->getParent());
-}
-
-static int luaHelp (lua_State *L)
-{
-  int argc = lua_gettop(L);
-  binding *b = binding::instance();
-  if (argc == 0){
-    std::cout << "this is the gmsh help\n";
-    for(std::map<std::string,classBinding *>::iterator it = b->classes.begin();
-        it != b->classes.end(); it++){
-      if(it->second->getParent())
-        continue;
-      std::cout << colorBlue << "  " << it->first<<colorDefault << " : ";
-      const std::string description = it->second->getDescription();
-      std::cout << (description.empty() ? "no help available" : description) << "\n";
-    }
-  }
-  else{
-    const char *className = luaL_checkstring(L, 1);
-    if(b->classes.find(className) == b->classes.end()){
-      std::cout << "Class " << colorBold << className << colorDefault 
-                << " does not exist.\n";
-      return 0;
-    }
-    classBinding *cb = b->classes[className];
-    std::cout << "\n" << colorRed << className << colorDefault << "\n";
-    const std::string description = cb->getDescription();
-    std::cout << (description.empty() ? "no help available" : description) << "\n";
-    std::cout << "\n";
-    if(cb->getConstructor()){
-      std::cout << colorGreen << "Constructor" << colorDefault << "\n";
-      printMethod(className,cb->getConstructor(), true);
-      std::cout << "\n";
-    }
-    listMethods(cb);
-    std::cout << "\n";
-    if(cb->children.size()){
-      std::cout << colorGreen << "Children of " << cb->getClassName() 
-                << colorDefault << "\n";
-      for(std::set<classBinding *>::iterator it = cb->children.begin(); 
-          it != cb->children.end(); it++){
-        std::cout << "  " << colorBlue << (*it)->getClassName() << colorDefault << " : ";
-        const std::string description = (*it)->getDescription();
-        std::cout << (description.empty() ? "no help available" : description) << "\n";
-      }
-      std::cout << "\n";
-    }
-  }
-  return 0;
-}
-
-static int luaSave (lua_State *L)
-{
-#if defined(HAVE_READLINE)
-  const char *filename = luaL_checkstring(L, 1);
-  write_history(filename);
-#endif
-  return 0;
-}
-
-static int luaClear(lua_State *L)
-{
-#if defined(HAVE_READLINE)
-  clear_history();
-#endif
-  return 0;
-}
-
-static int luaRefresh(lua_State *L)
-{
-#if defined(HAVE_OPENGL)
-  drawContext::global()->draw();
-#endif
-  return 0;
-}
-
-int binding::readFile(const char *filename)
-{
-  int lock = CTX::instance()->lock;
-  CTX::instance()->lock = 0;
-  checkDocCompleteness();
-  int s = luaL_loadfile(L, filename);
-  if (s == 0) {
-    Msg::Info("lua executes %s", filename);
-    s = lua_pcall(L, 0, LUA_MULTRET, 0);
-  }
-  reportErrors(L, s);
-  lua_close(L);
-  CTX::instance()->lock = lock;
-  return (s == 0);
-}
-
-static int countInArguments(const std::vector<std::string> &types)
-{
-  int c = 0;
-  for(unsigned int i = 1; i < types.size(); i++)
-    c += (types[i] != "-1");
-  return c;
-}
-
-void binding::checkDocCompleteness()
-{
-  int nBad = 0;
-  for(std::map<std::string, classBinding *>::iterator cb = classes.begin();
-      cb!=classes.end();cb++) {
-    if(cb->second->getDescription().empty()){
-      Msg::Error("binded class %s has no description.", cb->first.c_str());
-      nBad++;
-    }
-    luaMethodBinding *constructor = cb->second->getConstructor();
-    if(constructor){
-      if(constructor->getDescription().empty()){
-        Msg::Error("binded constructor of class %s has no description.", 
-                   cb->first.c_str());
-        nBad++;
-      }
-      std::vector<std::string> argTypeNames;
-      constructor->getArgTypeNames(argTypeNames);
-      int nTypeArg = countInArguments(argTypeNames);
-      int nDocArg = constructor->getArgNames().size();
-      if(nTypeArg != nDocArg){
-        Msg::Error("binded constructor of class %s takes %i arguments but %i "
-                   "are documented.", cb->first.c_str(), nTypeArg, nDocArg);
-        nBad++;
-      }
-    }
-    for(std::map<std::string,luaMethodBinding*>::iterator mb = cb->second->methods.begin();
-        mb != cb->second->methods.end(); mb++){
-      if(mb->second->getDescription().empty()){
-        Msg::Error("binded method %s.%s has no description.", cb->first.c_str(),
-                   mb->first.c_str());
-        nBad++;
-      }
-      std::vector<std::string> argTypeNames;
-      mb->second->getArgTypeNames(argTypeNames);
-      int nTypeArg = countInArguments(argTypeNames);
-      int nDocArg = mb->second->getArgNames().size();
-      if(nTypeArg != nDocArg){
-        Msg::Error("binded method %s.%s takes %i arguments but %i are documented.",
-          cb->first.c_str(),mb->first.c_str(), nTypeArg, nDocArg);
-        nBad++;
-      }
-    }
-  }
-  if(nBad != 0){
-    Msg::Error("Bindings documentation is not complete (%i error(s)). To enforce "
-               "documentation completeness, I will exit now. Please complete the "
-               "documentation and run Gmsh again ;-)", nBad);
-    Msg::Exit(1);
-  }
-}
-
-void binding::interactiveSession()
-{
-  int lock = CTX::instance()->lock;
-  CTX::instance()->lock = 0;
-  checkDocCompleteness();
-
-  Msg::Info("Starting interactive lua session, press Ctrl-D to exit"); 
-#if defined(HAVE_READLINE)
-  using_history();
-  while (const char *line=readline("lua> ")){
-    char *expansion = NULL;
-    int r=history_expand((char*)line, &expansion);
-    if(r)
-      std::cout << expansion << "\n";
-    if((r == 0 || r == 1) && expansion){
-      add_history(expansion);
-      reportErrors(L, luaL_dostring(L, expansion));
-    }
-    if(expansion)
-      free(expansion);
-  }
-  clear_history();
-#else
-  std::string line;
-  while(std::cout << "lua> ", getline(std::cin, line)){
-    reportErrors(L, luaL_dostring(L, line.c_str()));
-  }
-#endif
-  CTX::instance()->lock = lock;
-}
-
-binding::binding()
-{
-  if(_instance){
-    Msg::Error("Only one instance of lua bindings is allowed");
-  }
-  _instance = this;
-  L = lua_open();
-  /*
-  luaopen_base(L);
-  luaopen_table(L);
-  luaopen_os(L);
-  luaopen_io(L);
-  luaopen_string(L);
-  luaopen_math(L);
-  luaopen_debug(L);
-  */
-  luaL_openlibs(L);
-
-  lua_register(L, "help",luaHelp);
-  lua_register(L, "saveHistory", luaSave);
-  lua_register(L, "clearHistory", luaClear);
-  lua_register(L, "refreshGraphics", luaRefresh);
-
-  //  lua_pushcfunction(L, luaopen_io);
-  //  lua_call(L, 0, 0);
-
-  // Register Lua bindings
-  DocRecord::registerBindings(this);
-  GEntity::registerBindings(this);
-  GVertex::registerBindings(this);
-  GEdge::registerBindings(this);
-  GRegion::registerBindings(this);
-  GPoint::registerBindings(this);
-  MElement::registerBindings(this);
-  MVertex::registerBindings(this);
-  MTriangle::registerBindings(this);
-  MPrism::registerBindings(this);
-  MQuadrangle::registerBindings(this);
-  MLine::registerBindings(this);
-  fullMatrix<double>::registerBindings(this);
-  gmshOptions::registerBindings(this);
-  Msg::registerBindings(this);
-  polynomialBasis::registerBindings(this);
-  gaussIntegration::registerBindings(this);
-  meshPartitionOptions::registerBindings(this);
-  Temporary::registerBindings(this);
-#if defined(HAVE_SOLVER)
-  function::registerBindings(this);
-  linearSystem<double>::registerBindings(this);
-  linearSystemCSRGmm<double>::registerBindings(this);
-#if defined(HAVE_LUA)
-  elasticitySolverRegisterBindings(this); 
-#endif
-#endif
-#if defined(HAVE_POST)
-  PView::registerBindings(this);
-  PViewData::registerBindings(this);
-  PViewFactory::registerBindings(this);
-#endif
-}
-
-binding *binding::_instance=NULL;
-
-binding::~binding()
-{
-  for (std::map<std::string,classBinding *>::iterator it = classes.begin(); 
-       it != classes.end(); it++) {
-    delete it->second;
-  }
-}
-
-void *binding::checkudata_with_inheritance (lua_State *L, int ud, const char *tname)
-{
-  void *p = lua_touserdata(L, ud);
-  if (!p)
-    return NULL;
-  lua_getglobal(L, tname);
-  if (ud<0) ud--;
-  int depth = 1;
-  while (luaL_getmetafield (L, ud, "__index")) {
-    depth ++;
-    if (lua_rawequal(L,-1, -depth) ) {
-      lua_pop(L, depth);
-      return p;
-    }
-    ud = -1;
-  }
-  lua_pop(L, depth);
-  return NULL;
-}
-
-#endif
diff --git a/Common/LuaBindings.h b/Common/LuaBindings.h
deleted file mode 100644
index 931c38b656..0000000000
--- a/Common/LuaBindings.h
+++ /dev/null
@@ -1,1468 +0,0 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
-//
-// See the LICENSE.txt file for license information. Please report all
-// bugs and problems to <gmsh@geuz.org>.
-//
-// Contributor(s):
-//   Jonathan Lambrechts
-//
-
-#ifndef _LUA_BINDINGS_H_
-#define _LUA_BINDINGS_H_
-
-#include <map>
-#include <vector>
-#include <list>
-#include <set>
-#include "GmshConfig.h"
-#include "GmshMessage.h"
-#include "Bindings.h"
-#include "SVector3.h"
-
-#if defined(HAVE_LUA)
-
-extern "C" {
-#include "lua.h"
-#include "lauxlib.h"
-}
-
-// store a unique static class name for each binded class
-template <typename type>
-class className{
-  static std::string _name;
- public:
-  static void set(std::string name)
-  {
-    if(_name != "") Msg::Error("Class name already set");
-    _name = name;
-  }
-  static const std::string &get()
-  {
-    if(_name == "") Msg::Error("Class unknown to Lua");
-    return _name;
-  }
-};
-
-template<typename type>
-std::string  className<type>::_name;
-
-template <typename t>
-class className<t*>{
- public:
-  static const std::string get(){ return className<t>::get(); }
-};
-
-template <typename t>
-class className<const t &>{
- public:
-  static const std::string get(){ return className<t>::get(); }
-};
-
-class classBinding;
-class binding {
-  static binding *_instance;
-  void checkDocCompleteness();
- public:
-  static void *checkudata_with_inheritance (lua_State *L, int ud, const char *tname);
-  inline static binding *instance(){ return _instance ? _instance : new binding(); }
-  lua_State *L;
-  int readFile(const char *filename);
-  void interactiveSession();
-  binding();
-  ~binding();
-  std::map<std::string,classBinding *> classes;
-  template<class t>
-  classBinding *addClass(std::string className);
-};
-
-template <>
-class className<lua_State>{
- public:
-  static const std::string get(){ return "-1"; }
-};
-
-// lua Stack: templates to get/push value from/on the lua stack
-
-template<class type>
-class luaStack {
-};
-
-template <>
-class luaStack<void>
-{
- public:
-  static std::string getName(){ return "void"; }
-};
-
-template<>
-class luaStack<lua_State *>{
- public:
-  static lua_State *get(lua_State *L, int ia){ return L; }
-  static std::string getName(){ return "-1"; }
-};
-
-template<>
-class luaStack<int>{
- public:
-  static int get(lua_State *L, int ia){ return luaL_checkint(L, ia); }
-  static void push(lua_State *L, int i){ lua_pushinteger(L, i); }
-  static std::string getName(){ return "int"; }
-};
-
-template<>
-class luaStack<bool>{
- public:
-  static int get(lua_State *L, int ia){ return lua_toboolean(L, ia); }
-  static void push(lua_State *L, bool i){ lua_pushboolean(L, i); }
-  static std::string getName(){ return "bool"; }
-};
-template<>
-class luaStack<unsigned int>{
- public:
-  static int get(lua_State *L, unsigned int ia)
-  { 
-    return (unsigned int)luaL_checkint(L, ia);
-  }
-  static void push(lua_State *L, unsigned int i){ lua_pushinteger(L, i); }
-  static std::string getName(){ return "unsigned int"; }
-};
-
-template<class type>
-class luaStack<std::vector<type > >{
- public:
-  static std::vector<type> get(lua_State *L, int ia)
-  {
-    std::vector<type> v;
-    size_t size = lua_objlen(L, ia);
-    v.resize(size);
-    for(size_t i = 0; i < size; i++){
-      lua_rawgeti(L, ia, i + 1);
-      v[i] = luaStack<type>::get(L, -1);
-      lua_pop(L, 1);
-    }
-    return v;
-  }
-  static void push(lua_State *L, const std::vector<type>& v)
-  {
-    lua_createtable(L, v.size(), 0);
-    for(size_t i = 0; i < v.size(); i++){
-      luaStack<type>::push(L, v[i]);
-      lua_rawseti(L, 2, i + 1);
-    }
-  }
-  static std::string getName()
-  {
-    std::string name = "vector of ";
-    return name + luaStack<type>::getName();
-  }
-};
-template<class lType>
-class luaStack<std::list<lType > >{
- public:
-  static std::list<lType> get(lua_State *L, int ia)
-  {
-    std::list<lType> l;
-    size_t size = lua_objlen(L, ia);
-    for(size_t i = 0; i < size; i++){
-      lua_rawgeti(L, ia, i + 1);
-      l.push_back(luaStack<lType>::get(L, -1));
-      lua_pop(L, 1);
-    }
-    return l;
-  }
-  static void push(lua_State *L, const std::list<lType>& l)
-  {
-    std::vector<lType> v(l.begin(), l.end());
-    lua_createtable(L, v.size(), 0);
-    for(size_t i = 0; i < v.size(); i++){
-      luaStack<lType>::push(L, v[i]);
-      lua_rawseti(L, 2, i + 1);
-    }
-  }
-  static std::string getName()
-  {
-    std::string name = "list of ";
-    return name + luaStack<lType>::getName();
-  }
-};
-
-
-template<class type>
-class luaStack<std::vector<type> &>{
- public:
-  static std::vector<type> get(lua_State *L, int ia)
-  {
-    std::vector<type> v;
-    size_t size = lua_objlen(L, ia);
-    v.resize(size);
-    for(size_t i = 0; i< size; i++){
-      lua_rawgeti(L, ia, i + 1);
-      v[i]=luaStack<type>::get(L, -1);
-      lua_pop(L, 1);
-    }
-    return v;
-  }
-  static void push(lua_State *L, const std::vector<type>& v)
-  {
-    lua_createtable(L, v.size(), 0);
-    for(size_t i = 0; i < v.size; i++){
-      luaStack<type>::push(L, v[i]);
-      lua_rawseti(L, 2, i + 1);
-    }
-  }
-  static std::string getName()
-  {
-    std::string name="vector of ";
-    return name + luaStack<type>::getName();
-  }
-};
-template<class lType>
-class luaStack<std::list<lType > &>{
- public:
-  static std::list<lType> get(lua_State *L, int ia)
-  {
-    std::list<lType> l;
-    size_t size = lua_objlen(L, ia);
-    for(size_t i = 0; i < size; i++){
-      lua_rawgeti(L, ia, i + 1);
-      l.push_back(luaStack<lType>::get(L, -1));
-      lua_pop(L, 1);
-    }
-    return l;
-  }
-  static void push(lua_State *L, const std::list<lType>& l)
-  {
-    std::vector<lType> v(l.begin(), l.end());
-    lua_createtable(L, v.size(), 0);
-    for(size_t i = 0; i < v.size(); i++){
-      luaStack<lType>::push(L, v[i]);
-      lua_rawseti(L, 2, i + 1);
-    }
-  }
-  static std::string getName()
-  {
-    std::string name = "list of ";
-    return name + luaStack<lType>::getName();
-  }
-};
-
-template<>
-class luaStack<double>{
- public:
-  static double get(lua_State *L, int ia){ return luaL_checknumber(L, ia); }
-  static void push(lua_State *L, double v){ lua_pushnumber(L, v); }
-  static std::string getName(){ return "double"; }
-};
-
-template <>
-class luaStack<SVector3>{
- public:
-  static SVector3 get(lua_State *L, int ia)
-  {
-    double v[3];
-    size_t size = lua_objlen(L, ia);
-    if (size!=3)
-      luaL_typerror(L, ia, "SVector3");
-    for(size_t i = 0; i< size; i++){
-      lua_rawgeti(L, ia, i + 1);
-      v[i] = luaStack<double>::get(L, -1);
-      lua_pop(L, 1);
-    }
-    return SVector3(v[0],v[1],v[2]);
-  }
-  static void push(lua_State *L, const SVector3& v)
-  {
-    lua_createtable(L, 3, 0);
-    for(size_t i = 0; i < 3; i++){
-      luaStack<double>::push(L, v[i]);
-      lua_rawseti(L, 2, i + 1);
-    }
-  }
-  static std::string getName()
-  {
-    return "3-uple of double";
-  }
-};
-
-template<>
-class luaStack<std::string>{
-  public:
-  static std::string get(lua_State *L, int ia){ return luaL_checkstring(L, ia); }
-  static void push(lua_State *L, std::string s){ lua_pushstring(L, s.c_str()); }
-  static std::string getName(){ return "string"; }
-};
-
-template <typename type>
-class luaStack<type *>{
-  typedef struct { type *pT; } userdataType;
-  public:
-  static type* get(lua_State *L, int ia)
-  {
-    userdataType *ud = static_cast<userdataType*>
-      (binding::checkudata_with_inheritance (L, ia, getName().c_str()));
-    if(!ud) luaL_typerror(L, ia, className<type>::get().c_str());
-    return ud->pT;
-  }
-  static void push(lua_State *L, type *obj)
-  {
-    userdataType *ud = static_cast<userdataType*>
-      (lua_newuserdata(L, sizeof(userdataType)));
-    ud->pT=obj;
-    // lookup metatable in Lua registry
-    luaL_getmetatable(L,className<type>::get().c_str());
-    lua_setmetatable(L, -2);
-  }
-  static std::string getName()
-  {
-    return className<type>::get();
-  }
-};
-
-template <typename type>
-class luaStack<const type *>{
-  typedef struct { type *pT; } userdataType;
-  public:
-  static type* get(lua_State *L, int ia)
-  {
-    userdataType *ud = static_cast<userdataType*>
-      (binding::checkudata_with_inheritance (L, ia, getName().c_str()));
-    if(!ud) luaL_typerror(L, ia, className<type>::get().c_str());
-    return ud->pT;
-  }
-  static void push(lua_State *L, const type *obj)
-  {
-    userdataType *ud = static_cast<userdataType*>
-      (lua_newuserdata(L, sizeof(userdataType)));
-    ud->pT=(type*)obj;
-    // lookup metatable in Lua registry
-    luaL_getmetatable(L,className<type>::get().c_str());
-    lua_setmetatable(L, -2);
-  }
-  static std::string getName()
-  {
-    return className<type>::get();
-  }
-};
-
-template <typename type>
-class luaStack<type &>{
-  typedef struct { type *pT; } userdataType;
- public:
-  static type& get(lua_State *L, int ia)
-  {
-    userdataType *ud = static_cast<userdataType*>
-      (binding::checkudata_with_inheritance (L, ia, getName().c_str()));
-    if(!ud) luaL_typerror(L, ia, className<type>::get().c_str());
-    return *ud->pT; 
-  }
-  static std::string getName()
-  {
-    return className<type>::get();
-  }
-};
-
-template <typename type>
-class luaStack<const type &>{
-  typedef struct { type *pT; } userdataType;
- public:
-  static type& get(lua_State *L, int ia)
-  {
-    userdataType *ud = static_cast<userdataType*>
-      (binding::checkudata_with_inheritance (L, ia, getName().c_str()));
-    if(!ud) luaL_typerror(L, ia, className<type>::get().c_str());
-    return *ud->pT; 
-  }
-  static std::string getName()
-  {
-    return className<type>::get();
-  }
-};
-
-//static
-template <typename cb>
-class argTypeNames;
-
-template <typename tr, typename t0, typename t1, typename t2, typename t3, 
-  typename t4, typename t5, typename t6, typename t7, typename t8>
-  class argTypeNames<tr (*)(t0, t1, t2, t3, t4, t5, t6, t7, t8)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-    names.push_back(luaStack<t3>::getName());
-    names.push_back(luaStack<t4>::getName());
-    names.push_back(luaStack<t5>::getName());
-    names.push_back(luaStack<t6>::getName());
-    names.push_back(luaStack<t7>::getName());
-    names.push_back(luaStack<t8>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1, typename t2, typename t3, 
-          typename t4, typename t5, typename t6, typename t7>
-  class argTypeNames<tr (*)(t0, t1, t2, t3, t4, t5, t6, t7)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-    names.push_back(luaStack<t3>::getName());
-    names.push_back(luaStack<t4>::getName());
-    names.push_back(luaStack<t5>::getName());
-    names.push_back(luaStack<t6>::getName());
-    names.push_back(luaStack<t7>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1, typename t2, typename t3, 
-          typename t4, typename t5, typename t6>
-  class argTypeNames<tr (*)(t0, t1, t2, t3, t4, t5, t6)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-    names.push_back(luaStack<t3>::getName());
-    names.push_back(luaStack<t4>::getName());
-    names.push_back(luaStack<t5>::getName());
-    names.push_back(luaStack<t6>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1, typename t2, typename t3, 
-          typename t4, typename t5>
-class argTypeNames<tr (*)(t0, t1, t2, t3, t4, t5)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-    names.push_back(luaStack<t3>::getName());
-    names.push_back(luaStack<t4>::getName());
-    names.push_back(luaStack<t5>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1, typename t2, typename t3, 
-          typename t4>
-class argTypeNames<tr (*)(t0, t1, t2, t3, t4)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-    names.push_back(luaStack<t3>::getName());
-    names.push_back(luaStack<t4>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1, typename t2, typename t3>
-class argTypeNames<tr (*)(t0, t1, t2, t3)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-    names.push_back(luaStack<t3>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1, typename t2>
-class argTypeNames<tr (*)(t0, t1, t2)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-    names.push_back(luaStack<t2>::getName());
-  }
-};
-
-template <typename tr, typename t0, typename t1>
-class argTypeNames<tr (*)(t0, t1)>{
-  public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-    names.push_back(luaStack<t1>::getName());
-  }
-};
-
-template <typename tr, typename t0>
-class argTypeNames<tr (*)(t0)>{
-  public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-    names.push_back(luaStack<t0>::getName());
-  }
-};
-
-template <typename tr>
-class argTypeNames<tr (*)()>{
-  public:
-  static void get(std::vector<std::string> &names)
-  {
-    names.clear();
-    names.push_back(luaStack<tr>::getName());
-  }
-};
-
-template <typename cb>
-class argTypeNames;
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-  typename t3, typename t4, typename t5, typename t6, typename t7, typename t8>
-  class argTypeNames<tr (tObj::*)(t0, t1, t2, t3, t4, t5, t6, t7, t8)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2, t3, t4, t5, t6, t7, t8)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-          typename t3, typename t4, typename t5, typename t6, typename t7>
-  class argTypeNames<tr (tObj::*)(t0, t1, t2, t3, t4, t5, t6, t7)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2, t3, t4, t5, t6, t7)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-          typename t3, typename t4, typename t5, typename t6>
-  class argTypeNames<tr (tObj::*)(t0, t1, t2, t3, t4, t5, t6)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2, t3, t4, t5, t6)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-          typename t3, typename t4, typename t5>
-class argTypeNames<tr (tObj::*)(t0, t1, t2, t3, t4, t5)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2, t3, t4, t5)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-          typename t3, typename t4>
-class argTypeNames<tr (tObj::*)(t0, t1, t2, t3, t4)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2, t3, t4)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-          typename t3>
-class argTypeNames<tr (tObj::*)(t0, t1, t2, t3)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2, t3)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2>
-class argTypeNames<tr (tObj::*)(t0, t1, t2)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1, t2)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1>
-class argTypeNames<tr (tObj::*)(t0, t1)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0, t1)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0>
-class argTypeNames<tr (tObj::*)(t0)>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)(t0)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj>
-class argTypeNames<tr (tObj::*)()>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr(*)()>::get(names);
-  }
-};
-
-// const 
-template <typename cb>
-class argTypeNames;
-template <typename tr, typename tObj, typename t0, typename t1, typename t2,
-          typename t3>
-class argTypeNames<tr (tObj::*)(t0, t1, t2, t3)const>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr (*)(t0, t1, t2, t3)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1, typename t2>
-class argTypeNames<tr (tObj::*)(t0, t1, t2)const>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr (*)(t0, t1, t2)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0, typename t1>
-class argTypeNames<tr (tObj::*)(t0, t1)const>{
-  public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr (*)(t0, t1)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj, typename t0>
-class argTypeNames<tr (tObj::*)(t0)const>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr (*)(t0)>::get(names);
-  }
-};
-
-template <typename tr, typename tObj>
-class argTypeNames<tr (tObj::*)()const>{
- public:
-  static void get(std::vector<std::string> &names)
-  {
-    argTypeNames<tr (*)()>::get(names);
-  }
-};
-
-// template to call c function from the lua stack
-// static, return 
-template < typename tRet, typename t0, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6, typename t7, typename t8>
-  static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2, t3, t4, t5, t6, t7, t8))
-{
-  if (lua_gettop(L) == 10) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-				luaStack<t4>::get(L, 5), luaStack<t5>::get(L, 6),
-				luaStack<t6>::get(L, 7), luaStack<t7>::get(L, 8),
-				luaStack<t8>::get(L, 9)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6, typename t7>
-  static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2, t3, t4, t5, t6, t7))
-{
-  if (lua_gettop(L) == 9) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-				luaStack<t4>::get(L, 5), luaStack<t5>::get(L, 6),
-				luaStack<t6>::get(L, 7), luaStack<t7>::get(L, 8)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6>
-  static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2, t3, t4, t5, t6))
-{
-  if (lua_gettop(L) == 8) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-				luaStack<t4>::get(L, 5), luaStack<t5>::get(L, 6),
-				luaStack<t6>::get(L, 7)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1, typename t2, typename t3, typename t4, typename t5>
-  static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2, t3, t4, t5))
-{
-  if (lua_gettop(L) == 7) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-				luaStack<t4>::get(L, 5), luaStack<t5>::get(L, 6)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1, typename t2, typename t3, typename t4>
-  static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2, t3,t4))
-{
-  if (lua_gettop(L) == 6) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-				luaStack<t4>::get(L, 5)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1, typename t2, typename t3>
-static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2, t3))
-{
-  if (lua_gettop(L) == 5) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1, typename t2>
-static int luaCall(lua_State *L, tRet (*_f)(t0, t1, t2))
-{
-  if (lua_gettop(L) == 4) lua_remove(L,1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                luaStack<t2>::get(L, 3)));
-  return 1;
-};
-
-template < typename tRet, typename t0, typename t1>
-static int luaCall(lua_State *L, tRet (*_f)(t0, t1))
-{
-  if (lua_gettop(L) == 3) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2)));
-  return 1;
-};
-
-template < typename tRet, typename t0>
-static int luaCall(lua_State *L, tRet (*_f)(t0))
-{
-  if (lua_gettop(L) == 2) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)(luaStack<t0>::get(L, 1)));
-  return 1;
-};
-
-template < typename tRet>
-static int luaCall(lua_State *L, tRet (*_f)())
-{
-  if (lua_gettop(L) == 1) lua_remove(L, 1);
-  luaStack<tRet>::push(L, (*_f)());
-  return 1;
-};
-
-//static, no return 
-template < typename t0, typename t1, typename t2, typename t3, typename t4, typename t5, typename t6>
-  static int luaCall(lua_State *L, void (*_f)(t0, t1, t2, t3, t4, t5, t6))
-{
-  if (lua_gettop(L) == 8) lua_remove(L, 1);
-  (*(_f))(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-          luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4), luaStack<t4>::get(L, 5),
-	  luaStack<t5>::get(L, 6), luaStack<t6>::get(L, 7));
-  return 1;
-};
-
-template < typename t0, typename t1, typename t2, typename t3, typename t4, typename t5>
-  static int luaCall(lua_State *L, void (*_f)(t0, t1, t2, t3, t4, t5))
-{
-  if (lua_gettop(L) == 7) lua_remove(L, 1);
-  (*(_f))(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-          luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4), luaStack<t4>::get(L, 5),
-	  luaStack<t5>::get(L, 6));
-  return 1;
-};
-
-template < typename t0, typename t1, typename t2, typename t3, typename t4>
-  static int luaCall(lua_State *L, void (*_f)(t0, t1, t2, t3, t4))
-{
-  if (lua_gettop(L) == 6) lua_remove(L, 1);
-  (*(_f))(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-          luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4), luaStack<t4>::get(L, 5));
-  return 1;
-};
-
-template < typename t0, typename t1, typename t2, typename t3>
-static int luaCall(lua_State *L, void (*_f)(t0, t1, t2, t3))
-{
-  if (lua_gettop(L) == 5) lua_remove(L, 1);
-  (*(_f))(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-          luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4));
-  return 1;
-};
-
-template <typename t0, typename t1, typename t2>
-static int luaCall(lua_State *L, void (*_f)(t0, t1, t2))
-{
-  if (lua_gettop(L) == 4) lua_remove(L, 1);
-  (*(_f))(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),luaStack<t2>::get(L, 3));
-  return 1;
-};
-
-template <typename t0, typename t1>
-static int luaCall(lua_State *L,void (*_f)(t0, t1))
-{
-  if (lua_gettop(L) == 3) lua_remove(L,1);
-  (*(_f))(luaStack<t0>::get(L,1),luaStack<t1>::get(L,2));
-  return 1;
-};
-
-template <typename t0>
-static int luaCall(lua_State *L, void (*_f)(t0))
-{
-  if (lua_gettop(L) == 2) lua_remove(L, 1);
-  (*(_f))(luaStack<t0>::get(L, 1));
-  return 1;
-};
-
-template <>
-#if (__GNUC__< 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3))
-static 
-#endif
-int luaCall<void>(lua_State *L,void (*_f)())
-{
-  if (lua_gettop(L) == 1) lua_remove(L,1);
-  (*(_f))();
-  return 1;
-}
-
-//const, return
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-  typename t3, typename t4, typename t5, typename t6, typename t7>
-  static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2, t3, t4, t5, t6, t7) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), 
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5), luaStack<t4>::get(L, 6),
-			luaStack<t5>::get(L, 7), luaStack<t6>::get(L, 8), luaStack<t7>::get(L, 9)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-  typename t3, typename t4, typename t5, typename t6>
-  static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2, t3, t4, t5, t6) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), 
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5), luaStack<t4>::get(L, 6),
-			luaStack<t5>::get(L, 7), luaStack<t6>::get(L, 8)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-  typename t3, typename t4, typename t5>
-  static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2, t3, t4, t5) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), 
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5), luaStack<t4>::get(L, 6),
-			luaStack<t5>::get(L, 7)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-  typename t3, typename t4>
-  static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2, t3, t4) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), 
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5), luaStack<t4>::get(L, 6)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-          typename t3>
-static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2, t3) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), 
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2>
-static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2) const)
-{
-  luaStack<tRet>::push(L,(luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3),
-                        luaStack<t2>::get(L, 4)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1>
-static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2),luaStack<t1>::get(L, 3)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0>
-static int luaCall(lua_State *L, tRet (tObj::*_f)(t0) const)
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2)));
-  return 1;
-};
-
-template <typename tObj, typename tRet>
-static int luaCall(lua_State *L, tRet (tObj::*_f)() const) {
-  luaStack<tRet>::push(L,(luaStack<tObj*>::get(L,1)->*(_f))());
-  return 1;
-};
-
-//non const, return
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-          typename t3, typename  t4, typename t5, typename t6, typename t7>
-  static int luaCall(lua_State *L,tRet (tObj::*_f)(t0, t1, t2, t3, t4, t5, t6, t7))
-{
-  luaStack<tRet>::push(L,(luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3),
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5),
-                        luaStack<t4>::get(L, 6), luaStack<t5>::get(L, 7), 
-			luaStack<t6>::get(L, 8), luaStack<t7>::get(L, 9)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-          typename t3, typename  t4, typename t5, typename t6>
-  static int luaCall(lua_State *L,tRet (tObj::*_f)(t0, t1, t2, t3, t4, t5, t6))
-{
-  luaStack<tRet>::push(L,(luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3),
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5),
-                        luaStack<t4>::get(L, 6), luaStack<t5>::get(L, 7), 
-			luaStack<t6>::get(L, 8)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2,
-          typename t3, typename  t4, typename t5>
-static int luaCall(lua_State *L,tRet (tObj::*_f)(t0, t1, t2, t3, t4, t5))
-{
-  luaStack<tRet>::push(L,(luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3),
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5),
-                        luaStack<t4>::get(L, 6), luaStack<t5>::get(L, 7)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2, 
-          typename t3, typename t4>
-static int luaCall(lua_State *L, tRet (tObj::*_f)(t0, t1, t2, t3, t4))
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), 
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5),
-                        luaStack<t4>::get(L, 6)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2, 
-          typename t3>
-static int luaCall(lua_State *L,tRet (tObj::*_f)(t0, t1, t2, t3)) {
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L,1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3),
-                        luaStack<t2>::get(L, 4), luaStack<t3>::get(L, 5)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1, typename t2>
-static int luaCall(lua_State *L,tRet (tObj::*_f)(t0, t1, t2)) {
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3),
-                        luaStack<t2>::get(L, 4)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0, typename t1>
-static int luaCall(lua_State *L,tRet (tObj::*_f)(t0, t1))
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L, 1)->*(_f))
-                       (luaStack<t0>::get(L, 2),luaStack<t1>::get(L, 3)));
-  return 1;
-};
-
-template <typename tObj, typename tRet, typename t0>
-static int luaCall(lua_State *L,tRet (tObj::*_f)(t0))
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L,1)->*(_f))(luaStack<t0>::get(L, 2)));
-  return 1;
-};
-
-template <typename tObj, typename tRet>
-static int luaCall(lua_State *L,tRet (tObj::*_f)())
-{
-  luaStack<tRet>::push(L, (luaStack<tObj*>::get(L,1)->*(_f))());
-  return 1;
-};
-
-//const, no return
-template <typename tObj, typename t0, typename t1, typename t2, typename t3>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1, t2, t3) const)
-{
-  (luaStack<tObj*>::get(L,1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), luaStack<t2>::get(L, 4),
-     luaStack<t3>::get(L, 5));
-  return 0;
-};
-
-template <typename tObj, typename t0, typename t1, typename t2>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1, t2) const)
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), luaStack<t2>::get(L, 4));
-  return 0;
-};
-
-template <typename tObj, typename t0, typename t1>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1) const)
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3));
-  return 0;
-};
-
-template <typename tObj, typename t0>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0) const) {
-  (luaStack<tObj*>::get(L, 1)->*(_f))(luaStack<t0>::get(L, 2));
-  return 0;
-};
-
-template <typename tObj>
-static int luaCall(lua_State *L, void (tObj::*_f)() const)
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))();
-  return 0;
-};
-
-//non const, no return
-template <typename tObj, typename t0, typename t1, typename t2, typename t3, 
-          typename t4, typename t5>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1, t2, t3, t4, t5))
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), luaStack<t2>::get(L, 4),
-     luaStack<t3>::get(L, 5), luaStack<t4>::get(L, 6), luaStack<t5>::get(L, 7));
-  return 1;
-};
-
-template <typename tObj, typename t0, typename t1, typename t2, typename t3, 
-          typename t4>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1, t2, t3, t4))
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), luaStack<t2>::get(L, 4),
-     luaStack<t3>::get(L, 5), luaStack<t4>::get(L, 6));
-  return 1;
-};
-
-template <typename tObj, typename t0, typename t1, typename t2, typename t3>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1, t2, t3)) 
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), luaStack<t2>::get(L, 4),
-     luaStack<t3>::get(L, 5));
-  return 0;
-};
-
-template <typename tObj, typename t0, typename t1, typename t2>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1, t2))
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3), luaStack<t2>::get(L, 4));
-  return 0;
-};
-
-template <typename tObj, typename t0, typename t1>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0, t1))
-{
-  (luaStack<tObj*>::get(L, 1)->*(_f))
-    (luaStack<t0>::get(L, 2), luaStack<t1>::get(L, 3));
-  return 0;
-};
-template <typename tObj, typename t0>
-static int luaCall(lua_State *L, void (tObj::*_f)(t0))
-{
-  (luaStack<tObj*>::get(L,1)->*(_f))(luaStack<t0>::get(L, 2));
-  return 0;
-};
-
-template <typename tObj>
-static int luaCall(lua_State *L,void (tObj::*_f)())
-{
-  (luaStack<tObj*>::get(L,1)->*(_f))();
-  return 0;
-};
-
-// actual bindings classes
-class luaMethodBinding : public methodBinding{
- public:
-  std::string _luaname;
-  virtual int call (lua_State *L) = 0;
-  luaMethodBinding(const std::string luaname){ _luaname = luaname; }
-  luaMethodBinding(){ _luaname = ""; }
-  virtual void getArgTypeNames(std::vector<std::string> &names){}
-};
-
-template <typename cb>
-class methodBindingT :public luaMethodBinding {
- public:
-  cb _f;
-  methodBindingT(const std::string luaname, cb f) : luaMethodBinding(luaname) { _f = f; }
-  int call(lua_State *L){ return luaCall(L, _f); }
-  void getArgTypeNames(std::vector<std::string> &names){ argTypeNames<cb>::get(names); }
-};
-template <typename tObj, typename t0=void, typename t1=void, typename t2=void, 
-          typename t3=void, typename t4=void, typename t5=void>
-class constructorBindingT: public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L, 1);
-    (luaStack<tObj*>::push(L, new tObj(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                       luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-                                       luaStack<t4>::get(L, 5), luaStack<t5>::get(L, 6))));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names)
-  {
-    argTypeNames<void (tObj::*)(t0, t1, t2, t3, t4, t5)>::get(names);
-  }
-};
-
-
-template <typename tObj>
-class constructorBindingT<tObj, void, void, void, void,void> : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L, 1);
-    (luaStack<tObj*>::push(L, new tObj()));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names)
-  {
-    argTypeNames<void (tObj::*)()>::get(names);
-  }
-};
-
-template <typename tObj, typename t0>
-class constructorBindingT<tObj, t0, void, void, void, void,void> : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L,1);
-    (luaStack<tObj*>::push(L,new tObj(luaStack<t0>::get(L,1))));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names) {
-    argTypeNames<void (tObj::*)(t0)>::get(names);
-  }
-};
-
-template <typename tObj, typename t0, typename t1>
-class constructorBindingT<tObj, t0, t1, void, void, void,void> : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L, 1);
-    (luaStack<tObj*>::push(L, new tObj(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2))));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names)
-  {
-    argTypeNames<void (tObj::*)(t0, t1)>::get(names);
-  }
-};
-
-template <typename tObj, typename t0, typename t1, typename t2>
-class constructorBindingT<tObj, t0, t1, t2, void, void,void> : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L, 1);
-    (luaStack<tObj*>::push(L, new tObj(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                       luaStack<t2>::get(L, 3))));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names)
-  {
-    argTypeNames<void (tObj::*)(t0, t1, t2)>::get(names);
-  }
-};
-
-template <typename tObj, typename t0, typename t1, typename t2,  typename t3>
-class constructorBindingT<tObj, t0, t1, t2, t3, void, void> : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L, 1);
-    (luaStack<tObj*>::push(L, new tObj(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                       luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4))));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names)
-  {
-    argTypeNames<void (tObj::*)(t0, t1, t2, t3)>::get(names);
-  }
-};
-
-template <typename tObj, typename t0, typename t1, typename t2,  typename t3, typename t4>
-class constructorBindingT<tObj, t0, t1, t2, t3, t4, void> : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    lua_remove(L, 1);
-    (luaStack<tObj*>::push(L, new tObj(luaStack<t0>::get(L, 1), luaStack<t1>::get(L, 2),
-                                       luaStack<t2>::get(L, 3), luaStack<t3>::get(L, 4),
-                                       luaStack<t4>::get(L, 5))));
-    return 1;
-  }
-  void getArgTypeNames(std::vector<std::string> &names)
-  {
-    argTypeNames<void (tObj::*)(t0, t1, t2, t3,t4)>::get(names);
-  }
-};
-
-template <class t>
-class destructorBindingT : public luaMethodBinding {
- public:
-  int call(lua_State *L)
-  {
-    t *o = luaStack<t*>::get(L,1);
-    delete o;
-    return 0;
-  }
-};
-
-class classBinding {
-  std::string _className;
-  binding *_b;
-  luaMethodBinding *_constructor;
-  static int callMethod(lua_State *L)
-  {
-    return static_cast<luaMethodBinding*>(lua_touserdata(L, lua_upvalueindex(1)))->call(L); 
-  }
-  // I'd like to remove the "luaMethodBinding" and the "methodBindingT"
-  // classes and use this callback insteak but for some reason I don't
-  // understand, it does not work
-  static int callMethod2(lua_State *L)
-  {
-    int (*f)(lua_State*, void *) = (int (*)(lua_State*, void*))
-      (lua_touserdata(L, lua_upvalueindex(1)));
-    void *ff=lua_touserdata(L, lua_upvalueindex(2));
-    return (*f)(L, ff);
-  }
-  static int tostring(lua_State *L)
-  {
-    typedef struct { void *pt; } userdata;
-    char buff[32];
-    const char *name = luaL_checkstring(L, lua_upvalueindex(1));
-    userdata *ud = static_cast<userdata*>(lua_touserdata(L, 1));
-    sprintf(buff, "%p", ud->pt);
-    lua_pushfstring(L, "%s (%s)", name, buff);
-    return 1;
-  }
-  void setConstructorLuaMethod(luaMethodBinding *constructor)
-  {
-    lua_State *L = _b->L;
-    lua_getglobal(L, _className.c_str());
-    int methods = lua_gettop(L);
-    lua_getmetatable(L, methods);
-    int mt = lua_gettop(L);
-    lua_pushlightuserdata(L, (void*)constructor);
-    lua_pushcclosure(L, callMethod, 1);
-    lua_setfield(L, mt, "__call");
-    lua_pop(L, 2);
-    _constructor = constructor;
-  }
-  //for the doc
-  std::string _description;
-  classBinding *_parent;
- public:
-  std::set<classBinding *> children;
-  inline luaMethodBinding *getConstructor(){ return _constructor; }
-  // get userdata from Lua stack and return pointer to T object
-  classBinding(binding *b, std::string name)
-  {
-    _b = b;
-    lua_State *L = _b->L;
-    _className = name;
-    _constructor = NULL;
-    _parent = NULL;
-
-    // there are 3 tables involved :
-    // methods : the table of the C++ functions we bind (exept constructor)
-    // metatable : the metatable attached to each intance of the
-    //   class, falling back to method (metatable.__index=method)
-    // mt : the metatable of method to store the constructor (__new)
-    //   and possibly falling back to the parent metatable( __index)
-    lua_newtable(L); // methods
-    int methods = lua_gettop(L);
-    lua_pushvalue(L, methods);
-    lua_setglobal(L, _className.c_str()); // global[_className] = methods
-
-    luaL_newmetatable(L, _className.c_str());
-    int metatable = lua_gettop(L);
-
-    lua_pushvalue(L, methods);
-    lua_setfield(L, metatable, "__index"); // metatable.__index=methods
-
-    lua_pushstring(L,name.c_str());
-    lua_pushcclosure(L, tostring,1);
-    lua_setfield(L, metatable, "__tostring");
-
-    lua_newtable(L);
-    //int mt = lua_gettop(L);
-
-    lua_setmetatable(L, methods); // setmetatable(methods, mt)
-    lua_pop(L, 2);  // drop metatable and method table
-  } 
-  void setParentClassName(const std::string parentClassName) {
-    if(_parent)
-      Msg::Error("Multiple inheritance not implemented in lua bindings "
-                 "for class %s", _className.c_str());
-    if(_b->classes.find(parentClassName) == _b->classes.end())
-      Msg::Error("Unknown class %s", parentClassName.c_str());
-    _parent = _b->classes[parentClassName];
-    _parent->children.insert(this);
-    lua_getglobal(_b->L, _className.c_str());
-    lua_getmetatable(_b->L, -1);
-    int mt=lua_gettop(_b->L);
-    lua_getglobal(_b->L, parentClassName.c_str());
-    lua_setfield(_b->L, mt, "__index"); 
-    // mt.__index = global[_parentClassName] // this is the inheritance bit
-    lua_pop(_b->L, 2);
-  }
-  template<typename parentType>
-  void setParentClass()
-  {
-    setParentClassName(className<parentType>::get());
-  }
-  void setDescription(std::string description){ _description = description; }
-  inline const std::string getDescription() const { return _description; }
-  inline classBinding *getParent() const { return _parent; }
-  std::map<std::string, luaMethodBinding *> methods;
-  void addMethodLua (std::string n, luaMethodBinding *mb) {
-    methods[n] = mb;
-    lua_State *L = _b->L;
-    lua_getglobal(L, _className.c_str());
-    int methods = lua_gettop(L);
-    /*int (*lc)(lua_State *,cb)=(int(*)(lua_State*,cb))luaCall;
-    lua_pushlightuserdata(L, (void*)lc);
-    lua_pushlightuserdata(L, (void*)f);
-    lua_pushcclosure(L, callMethod2, 2);*/
-    lua_pushlightuserdata(L, (void*)mb);
-    lua_pushcclosure(L, callMethod, 1);
-    lua_setfield(L,methods, n.c_str()); //className.name = callMethod(mb)
-    lua_pop(L, 1);
-  }
-  template <typename cb>
-  methodBinding *addMethod(std::string n, cb f)
-  {
-    luaMethodBinding *mb = new methodBindingT<cb>(n, f);
-    addMethodLua(n,mb);
-    return mb; 
-  }
-  template <typename tObj, typename t0, typename t1, typename t2, typename t3, 
-            typename t4, typename t5>
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0,t1,t2,t3,t4,t5>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  template <typename tObj, typename t0, typename t1, typename t2, typename t3, 
-            typename t4>
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0,t1,t2,t3,t4>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  template <typename tObj, typename t0, typename t1, typename t2, typename t3 >
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0,t1,t2,t3>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  template <typename tObj, typename t0, typename t1, typename t2 >
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0,t1,t2>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  template <typename tObj, typename t0, typename t1>
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0,t1>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  template <typename tObj, typename t0>
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj,t0>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  template<typename tObj>
-  methodBinding *setConstructor()
-  {
-    luaMethodBinding *constructorLua = new constructorBindingT<tObj>;
-    setConstructorLuaMethod(constructorLua);
-    return constructorLua;
-  }
-  inline const std::string getClassName()const {return _className;}
-  ~classBinding() {
-    if (_constructor)
-      delete _constructor;
-    for (std::map<std::string, luaMethodBinding *>::iterator it = methods.begin(); it!=methods.end(); it++) {
-      delete it->second;
-    }
-  }
-};
-
-template<typename t>
-classBinding *binding::addClass(std::string name)
-{
-  className<t>::set(name);
-  classBinding *cb = new classBinding(this, name);
-  luaMethodBinding *d = new destructorBindingT<t>();
-  d->setDescription("destructor");
-  cb->addMethodLua("delete", d);
-  classes[name] = cb;
-  return cb;
-}
-
-#endif
-#endif
diff --git a/Common/Main.cpp b/Common/Main.cpp
index 2b3f5bfbcd..61f7332ff4 100644
--- a/Common/Main.cpp
+++ b/Common/Main.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/MallocUtils.cpp b/Common/MallocUtils.cpp
index f4c09801a5..39ad2b965e 100644
--- a/Common/MallocUtils.cpp
+++ b/Common/MallocUtils.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/MallocUtils.h b/Common/MallocUtils.h
index 63300f276f..b75faafef4 100644
--- a/Common/MallocUtils.h
+++ b/Common/MallocUtils.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OS.cpp b/Common/OS.cpp
index 84933ed80f..e099e7f6ae 100644
--- a/Common/OS.cpp
+++ b/Common/OS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OS.h b/Common/OS.h
index 83cc5e73f7..8922e4832e 100644
--- a/Common/OS.h
+++ b/Common/OS.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Octree.cpp b/Common/Octree.cpp
index 4bcdc092ef..58c5c35133 100644
--- a/Common/Octree.cpp
+++ b/Common/Octree.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Octree.h b/Common/Octree.h
index d6281725e0..a831bcb77c 100644
--- a/Common/Octree.h
+++ b/Common/Octree.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OctreeInternals.cpp b/Common/OctreeInternals.cpp
index 2c500d379a..d1d83e01e8 100644
--- a/Common/OctreeInternals.cpp
+++ b/Common/OctreeInternals.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OctreeInternals.h b/Common/OctreeInternals.h
index 8117aba03a..c71eda2576 100644
--- a/Common/OctreeInternals.h
+++ b/Common/OctreeInternals.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/OpenFile.cpp b/Common/OpenFile.cpp
index b1722ed3b2..fd4ef3a651 100644
--- a/Common/OpenFile.cpp
+++ b/Common/OpenFile.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -18,7 +18,6 @@
 #include "OS.h"
 #include "StringUtils.h"
 #include "GeomMeshMatcher.h"
-#include "LuaBindings.h"
 
 #if defined(HAVE_PARSER)
 #include "Parser.h"
@@ -335,11 +334,6 @@ int MergeFile(std::string fileName, bool warnIfMissing)
     status = read_png(fileName);
   }
 #endif
-#endif
-#if defined(HAVE_LUA)
-  else if(ext == ".lua" || ext == ".LUA") {
-    status = binding::instance()->readFile(fileName.c_str());
-  }
 #endif
   else if(ext == ".ply2" || ext == ".PLY2"){
     status = GModel::current()->readPLY2(fileName);
diff --git a/Common/OpenFile.h b/Common/OpenFile.h
index d6b10c9e60..40fae6b73c 100644
--- a/Common/OpenFile.h
+++ b/Common/OpenFile.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Options.cpp b/Common/Options.cpp
index 30510cd0ae..341765d31b 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/Options.h b/Common/Options.h
index 39f31fe7a4..9db8fcb1de 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/SmoothData.cpp b/Common/SmoothData.cpp
index 0c11228e01..82f57140e6 100644
--- a/Common/SmoothData.cpp
+++ b/Common/SmoothData.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/SmoothData.h b/Common/SmoothData.h
index 741d5d43f6..f8615447c4 100644
--- a/Common/SmoothData.h
+++ b/Common/SmoothData.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/StringUtils.cpp b/Common/StringUtils.cpp
index d7597d4021..acd3d8ca54 100644
--- a/Common/StringUtils.cpp
+++ b/Common/StringUtils.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/StringUtils.h b/Common/StringUtils.h
index 81061107e2..c30a7b2618 100644
--- a/Common/StringUtils.h
+++ b/Common/StringUtils.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/TreeUtils.cpp b/Common/TreeUtils.cpp
index 22ecd64ada..ca1c8635fc 100644
--- a/Common/TreeUtils.cpp
+++ b/Common/TreeUtils.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/TreeUtils.h b/Common/TreeUtils.h
index ecdb609aa1..9e949b46e6 100644
--- a/Common/TreeUtils.h
+++ b/Common/TreeUtils.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/VertexArray.cpp b/Common/VertexArray.cpp
index beb751af07..ad13ffe9ee 100644
--- a/Common/VertexArray.cpp
+++ b/Common/VertexArray.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/VertexArray.h b/Common/VertexArray.h
index 6703837e2d..3454d1a2b7 100644
--- a/Common/VertexArray.h
+++ b/Common/VertexArray.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Common/gmshpy.i b/Common/gmshpy.i
index a2b6afdd6e..cae9c8adc8 100644
--- a/Common/gmshpy.i
+++ b/Common/gmshpy.i
@@ -4,6 +4,7 @@
 %include std_vector.i
 %include std_list.i
 %{
+  #include "GmshConfig.h"
   #include "GModel.h"
   #include "DefaultOptions.h"
   #include "fullMatrix.h"
@@ -43,16 +44,18 @@
   #include "SPoint3.h"
   #include "SPoint2.h"
   #include "GPoint.h"  
+  #if defined(HAVE_FLTK)
+  #include "FlGui.h"
+  #endif
   class errorHandler: public GmshMessage {
     void operator()(std::string level, std::string message){
-      //const char *color = colorDefault;
+  #if defined(HAVE_FLTK)
+      // don't output anything special if we're running in a gui
+      if(FlGui::available()) return;
+  #endif
       std::cout<<level<<" : "<<message<<std::endl;
-      if (level=="Error" || level == "Fatal") {
-        //color = colorRed;
-        //color confuses ctest/cdash
-        //std::cout<<color<<level<<" : "<<message<<colorDefault<<"\n";
+      if (level == "Fatal") 
         throw;
-      }
     }
   };
 %}
@@ -80,7 +83,6 @@ namespace std {
    %template(GFaceList) list<GFace*, std::allocator<GFace*> >;
 }
 
-
 %include "GmshConfig.h"
 %include "Context.h"
 %include "fullMatrix.h"
@@ -128,3 +130,6 @@ namespace std {
 %include "functionPython.h"
 %include "meshGFaceLloyd.h"
 %include "DefaultOptions.h"
+#if defined(HAVE_FLTK)
+%include "FlGui.h"
+#endif
diff --git a/Fltk/CMakeLists.txt b/Fltk/CMakeLists.txt
index 9a75c0fb02..3b6cbe7868 100644
--- a/Fltk/CMakeLists.txt
+++ b/Fltk/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/FlGui.cpp b/Fltk/FlGui.cpp
index 00a9afc465..451a6ec35c 100644
--- a/Fltk/FlGui.cpp
+++ b/Fltk/FlGui.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -204,6 +204,9 @@ FlGui::FlGui(int argc, char **argv)
   // add callback to respond to Mac Finder
 #if defined(__APPLE__)
   fl_open_callback(OpenProjectMacFinder);
+#if (FL_MAJOR_VERSION == 1) && (FL_MINOR_VERSION == 3)
+  fl_mac_set_about(help_about_cb, 0);
+#endif
 #endif
 
   // all the windows are contructed (even if some are not displayed)
@@ -247,7 +250,8 @@ FlGui::FlGui(int argc, char **argv)
 
   // graphic window should have the initial focus (so we can
   // e.g. directly loop through time steps with the keyboard)
-  graph[0]->gl[0]->take_focus();
+  //graph[0]->gl[0]->take_focus();
+  Fl::focus(graph[0]->gl[0]);
 
   // create additional graphic windows
   for(int i = 1; i < CTX::instance()->numWindows; i++){
@@ -279,6 +283,8 @@ FlGui::FlGui(int argc, char **argv)
   for(unsigned int i = 0; i < graph.size(); i++)
     for(unsigned int j = 0; j < graph[i]->gl.size(); j++)
       graph[i]->gl[j]->redraw();
+
+  menu->setContext(menu_geometry, 0);
 }
 
 FlGui *FlGui::_instance = 0;
@@ -308,6 +314,19 @@ FlGui *FlGui::instance(int argc, char **argv)
   return _instance;
 }
 
+int FlGui::run()
+{
+  // bounding box computation necessary if we run the gui without
+  // merging any files (e.g. if we build the geometry with python and
+  // create the gui from the python script)
+  SetBoundingBox();
+ 
+  // draw the scene
+  drawContext::global()->draw();
+
+  return Fl::run(); 
+}
+
 int FlGui::testGlobalShortcuts(int event)
 {
   // we only handle shortcuts here
@@ -616,7 +635,8 @@ int FlGui::testGlobalShortcuts(int event)
           (i, GMSH_SET | GMSH_GUI, !opt_view_draw_strings(i, GMSH_GET, 0));
     status = 2;
   }
-  else if(Fl::test_shortcut(FL_ALT + 'e')) {
+  else if(Fl::test_shortcut(FL_ALT + 'e') ||
+          Fl::test_shortcut(FL_ALT + FL_SHIFT + 'e')) {
     for(unsigned int i = 0; i < PView::list.size(); i++)
       if(opt_view_visible(i, GMSH_GET, 0))
         opt_view_show_element
diff --git a/Fltk/FlGui.h b/Fltk/FlGui.h
index 7da10e33a2..bc3b656354 100644
--- a/Fltk/FlGui.h
+++ b/Fltk/FlGui.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -73,13 +73,13 @@ class FlGui{
   // check if the GUI is available
   static bool available(){ return (_instance != 0); }
   // run the GUI until there's no window left
-  int run(){ return Fl::run(); }
+  static int run();
   // check (now!) if there are any pending events, and process them
-  void check(){ Fl::check(); }
+  static void check(){ Fl::check(); }
   // wait (possibly indefinitely) for any events, then process them
-  void wait(){ Fl::wait(); }
+  static void wait(){ Fl::wait(); }
   // wait (at most time seconds) for any events, then process them
-  void wait(double time){ Fl::wait(time); }
+  static void wait(double time){ Fl::wait(time); }
   // test application-level keyboard shortcuts
   int testGlobalShortcuts(int event);
   // test the arrow shortcuts (not in the application-level shortcuts)
diff --git a/Fltk/Main.cpp b/Fltk/Main.cpp
index 898d614df0..dd2bb166a6 100644
--- a/Fltk/Main.cpp
+++ b/Fltk/Main.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/aboutWindow.cpp b/Fltk/aboutWindow.cpp
index 91d8c9220f..4b84500cb6 100644
--- a/Fltk/aboutWindow.cpp
+++ b/Fltk/aboutWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/aboutWindow.h b/Fltk/aboutWindow.h
index 5fab0f09d8..b6dacb96e5 100644
--- a/Fltk/aboutWindow.h
+++ b/Fltk/aboutWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/classificationEditor.cpp b/Fltk/classificationEditor.cpp
index f82e68bd07..7c76c9c505 100644
--- a/Fltk/classificationEditor.cpp
+++ b/Fltk/classificationEditor.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/classificationEditor.h b/Fltk/classificationEditor.h
index b226b14d72..c265da22c8 100644
--- a/Fltk/classificationEditor.h
+++ b/Fltk/classificationEditor.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/clippingWindow.cpp b/Fltk/clippingWindow.cpp
index 3db4f65bef..30a5ce7a6d 100644
--- a/Fltk/clippingWindow.cpp
+++ b/Fltk/clippingWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/clippingWindow.h b/Fltk/clippingWindow.h
index 64d7de85a8..42658e533f 100644
--- a/Fltk/clippingWindow.h
+++ b/Fltk/clippingWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/colorbarWindow.cpp b/Fltk/colorbarWindow.cpp
index 8ddbac08c4..03a3b144c0 100644
--- a/Fltk/colorbarWindow.cpp
+++ b/Fltk/colorbarWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/colorbarWindow.h b/Fltk/colorbarWindow.h
index 23e2079579..a919c550c3 100644
--- a/Fltk/colorbarWindow.h
+++ b/Fltk/colorbarWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/contextWindow.cpp b/Fltk/contextWindow.cpp
index 645cbf1a53..0098bf4238 100644
--- a/Fltk/contextWindow.cpp
+++ b/Fltk/contextWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/contextWindow.h b/Fltk/contextWindow.h
index bbc8cafb79..eace16f109 100644
--- a/Fltk/contextWindow.h
+++ b/Fltk/contextWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/extraDialogs.cpp b/Fltk/extraDialogs.cpp
index a3349127ae..dbbb331623 100644
--- a/Fltk/extraDialogs.cpp
+++ b/Fltk/extraDialogs.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/extraDialogs.h b/Fltk/extraDialogs.h
index 4035f390dc..656e2da1fa 100644
--- a/Fltk/extraDialogs.h
+++ b/Fltk/extraDialogs.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/fieldWindow.cpp b/Fltk/fieldWindow.cpp
index 56a37a9ff3..55a7f4fc79 100644
--- a/Fltk/fieldWindow.cpp
+++ b/Fltk/fieldWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/fieldWindow.h b/Fltk/fieldWindow.h
index 2e67c023e3..b14fc7d1a0 100644
--- a/Fltk/fieldWindow.h
+++ b/Fltk/fieldWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/fileDialogs.cpp b/Fltk/fileDialogs.cpp
index bea2ceba0d..7c55b6a6db 100644
--- a/Fltk/fileDialogs.cpp
+++ b/Fltk/fileDialogs.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/fileDialogs.h b/Fltk/fileDialogs.h
index a7f6dab3d0..268ba95146 100644
--- a/Fltk/fileDialogs.h
+++ b/Fltk/fileDialogs.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp
index ea1676199e..51235194cb 100644
--- a/Fltk/graphicWindow.cpp
+++ b/Fltk/graphicWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -183,9 +183,9 @@ void status_xyz1p_cb(Fl_Widget *w, void *data)
       // reset translation and scaling, or sync translation and
       // scaling with the first window (alt)
       if (CTX::instance()->camera) {
-	ctx->camera.lookAtCg();}
+	ctx->camera.lookAtCg();
+      }
       else{
-
 	if(Fl::event_state(FL_ALT)){
 	  if(i != 0){
 	    drawContext *ctx0 = gls[0]->getDrawContext();
@@ -202,7 +202,6 @@ void status_xyz1p_cb(Fl_Widget *w, void *data)
       }
     }
     else if(!strcmp(str, "reset")){
- 
       if (CTX::instance()->camera) {
 	ctx->camera.init();}
       else{
@@ -583,7 +582,6 @@ graphicWindow::graphicWindow(bool main, int numTiles)
 
   int mode = FL_RGB | FL_DEPTH | (CTX::instance()->db ? FL_DOUBLE : FL_SINGLE);
   if(CTX::instance()->antialiasing) mode |= FL_MULTISAMPLE;
-  //mode |= FL_STEREO;
   if(CTX::instance()->stereo) { 
     mode |= FL_DOUBLE;
     mode |= FL_STEREO;
@@ -619,37 +617,38 @@ void graphicWindow::split(openglWindow *g, char how)
     // let's be brutal :-)
     int mode = g->mode();
     openglWindow::setLastHandled(0);
-    tile->clear();
+    tile->clear(); // this really deletes the child opengl windows
     gl.clear();
     openglWindow *g2 = new openglWindow(0, 0, tile->w(), tile->h());
+    g2->end();
     g2->mode(mode);
+    gl.push_back(g2);
+    tile->add(g2);
+    g2->show();
+  }
+  else{
+    int x1 = g->x();
+    int y1 = g->y();
+    int w1 = (how == 'h') ? g->w() / 2 : g->w();
+    int h1 = (how == 'h') ? g->h() : g->h() / 2;
+    
+    int x2 = (how == 'h') ? (g->x() + w1) : g->x();
+    int y2 = (how == 'h') ? g->y() : (g->y() + h1);
+    int w2 = (how == 'h') ? (g->w() - w1) : g->w();
+    int h2 = (how == 'h') ? g->h() : (g->h() - h1);
+    
+    openglWindow *g2 = new openglWindow(0, 0, w2, h2);
     g2->end();
+    g2->mode(g->mode());
+    
     gl.push_back(g2);
     tile->add(g2);
     g2->show();
-    return;
+    
+    g->resize(x1, y1, w1, h1);
+    g2->resize(x2, y2, w2, h2);
   }
-
-  int x1 = g->x();
-  int y1 = g->y();
-  int w1 = (how == 'h') ? g->w() / 2 : g->w();
-  int h1 = (how == 'h') ? g->h() : g->h() / 2;
-
-  int x2 = (how == 'h') ? (g->x() + w1) : g->x();
-  int y2 = (how == 'h') ? g->y() : (g->y() + h1);
-  int w2 = (how == 'h') ? (g->w() - w1) : g->w();
-  int h2 = (how == 'h') ? g->h() : (g->h() - h1);
-
-  openglWindow *g2 = new openglWindow(0, 0, w2, h2);
-  g2->mode(g->mode());
-  g2->end();
-
-  gl.push_back(g2);
-  tile->add(g2);
-  g2->show();
-
-  g->resize(x1, y1, w1, h1);
-  g2->resize(x2, y2, w2, h2);
+  drawContext::global()->draw();
 }
 
 void graphicWindow::setAnimButtons(int mode)
diff --git a/Fltk/graphicWindow.h b/Fltk/graphicWindow.h
index d33865caa0..ab53da0d1c 100644
--- a/Fltk/graphicWindow.h
+++ b/Fltk/graphicWindow.h
@@ -1,5 +1,5 @@
 
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/mainWindow.h b/Fltk/mainWindow.h
index d9aa044642..9293db77cc 100644
--- a/Fltk/mainWindow.h
+++ b/Fltk/mainWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/manipWindow.cpp b/Fltk/manipWindow.cpp
index 44fb123ee4..fa19ae24f2 100644
--- a/Fltk/manipWindow.cpp
+++ b/Fltk/manipWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/manipWindow.h b/Fltk/manipWindow.h
index 1a5a140632..b6fccc5a01 100644
--- a/Fltk/manipWindow.h
+++ b/Fltk/manipWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/menuWindow.cpp b/Fltk/menuWindow.cpp
index 650b413c77..20e5394d11 100644
--- a/Fltk/menuWindow.cpp
+++ b/Fltk/menuWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -99,9 +99,6 @@ static const char *input_formats =
   "All Files" TT "*" NN
   SEPARATOR_IN
   "Gmsh Geometry" TT "*.geo" NN
-#if defined(HAVE_LUA)
-  "Gmsh LUA Script" TT "*.lua" NN
-#endif
   "Gmsh Mesh" TT "*.msh" NN
   "Gmsh Post-processing View" TT "*.pos" NN
 #if defined(HAVE_ACIS) || defined(HAVE_OCC)
@@ -637,7 +634,7 @@ static void help_online_cb(Fl_Widget *w, void *data)
   SystemCall(ReplaceSubString("%s", "http://geuz.org/gmsh/doc/texinfo/", prog));
 }
 
-static void help_about_cb(Fl_Widget *w, void *data)
+void help_about_cb(Fl_Widget *w, void *data)
 {
   FlGui::instance()->about->win->show();
 }
@@ -2437,8 +2434,12 @@ static Fl_Menu_Item sysbar_table[] = {
     {"Mouse Actions",        0, (Fl_Callback *)help_mouse_cb, 0},
     {"Keyboard Shortcuts",   0, (Fl_Callback *)help_short_cb, 0},
     {"Command Line Options", 0, (Fl_Callback *)help_command_line_cb, 0},
+#if (FL_MAJOR_VERSION == 1) && (FL_MINOR_VERSION == 3)
+    {"Current Options",      0, (Fl_Callback *)status_options_cb, (void*)"?"},
+#else
     {"Current Options",      0, (Fl_Callback *)status_options_cb, (void*)"?", FL_MENU_DIVIDER},
     {"About Gmsh",           0, (Fl_Callback *)help_about_cb, 0},
+#endif
     {0},
   {0}
 };
diff --git a/Fltk/menuWindow.h b/Fltk/menuWindow.h
index 14b6ab8277..94d982c7f4 100644
--- a/Fltk/menuWindow.h
+++ b/Fltk/menuWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -91,5 +91,6 @@ void geometry_reload_cb(Fl_Widget *w, void *data);
 void mesh_1d_cb(Fl_Widget *w, void *data);
 void mesh_2d_cb(Fl_Widget *w, void *data);
 void mesh_3d_cb(Fl_Widget *w, void *data);
+void help_about_cb(Fl_Widget *w, void *data);
 
 #endif
diff --git a/Fltk/messageWindow.cpp b/Fltk/messageWindow.cpp
index ead6327d57..baab79180f 100644
--- a/Fltk/messageWindow.cpp
+++ b/Fltk/messageWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/messageWindow.h b/Fltk/messageWindow.h
index a0ded889c7..1b20311efb 100644
--- a/Fltk/messageWindow.h
+++ b/Fltk/messageWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/openglWindow.cpp b/Fltk/openglWindow.cpp
index a2140903ef..39096247cd 100644
--- a/Fltk/openglWindow.cpp
+++ b/Fltk/openglWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -52,7 +52,7 @@ openglWindow::openglWindow(int x, int y, int w, int h, const char *l)
 
 openglWindow::~openglWindow()
 { 
-  delete _ctx; 
+  delete _ctx;
 }
 
 void openglWindow::_drawScreenMessage()
diff --git a/Fltk/openglWindow.h b/Fltk/openglWindow.h
index 7c6bc0c74b..c2860f4be3 100644
--- a/Fltk/openglWindow.h
+++ b/Fltk/openglWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/optionWindow.cpp b/Fltk/optionWindow.cpp
index 59ef8b1152..22a515beea 100644
--- a/Fltk/optionWindow.cpp
+++ b/Fltk/optionWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/optionWindow.h b/Fltk/optionWindow.h
index a321aab0de..ddf67bde7e 100644
--- a/Fltk/optionWindow.h
+++ b/Fltk/optionWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/paletteWindow.h b/Fltk/paletteWindow.h
index d214a05640..4493529a9c 100644
--- a/Fltk/paletteWindow.h
+++ b/Fltk/paletteWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/partitionDialog.cpp b/Fltk/partitionDialog.cpp
index 1e2464bea5..ee36a40fb6 100644
--- a/Fltk/partitionDialog.cpp
+++ b/Fltk/partitionDialog.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/partitionDialog.h b/Fltk/partitionDialog.h
index 4850606d08..16df3a7a68 100644
--- a/Fltk/partitionDialog.h
+++ b/Fltk/partitionDialog.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/pluginWindow.cpp b/Fltk/pluginWindow.cpp
index 8a3e64eb8c..9e53915ed1 100644
--- a/Fltk/pluginWindow.cpp
+++ b/Fltk/pluginWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/pluginWindow.h b/Fltk/pluginWindow.h
index 2ef0958b9a..81378b0d1c 100644
--- a/Fltk/pluginWindow.h
+++ b/Fltk/pluginWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/popupButton.h b/Fltk/popupButton.h
index 5dba70cd10..d0b642a7a7 100644
--- a/Fltk/popupButton.h
+++ b/Fltk/popupButton.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/projectionEditor.cpp b/Fltk/projectionEditor.cpp
index 13550fe04a..4c9f13e77d 100644
--- a/Fltk/projectionEditor.cpp
+++ b/Fltk/projectionEditor.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/projectionEditor.h b/Fltk/projectionEditor.h
index 11b6336ba0..8b97d03e47 100644
--- a/Fltk/projectionEditor.h
+++ b/Fltk/projectionEditor.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/solverWindow.cpp b/Fltk/solverWindow.cpp
index 028129c4f3..4d21b22fef 100644
--- a/Fltk/solverWindow.cpp
+++ b/Fltk/solverWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/solverWindow.h b/Fltk/solverWindow.h
index 31a3b279c1..f3c71be01f 100644
--- a/Fltk/solverWindow.h
+++ b/Fltk/solverWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/spherePositionWidget.h b/Fltk/spherePositionWidget.h
index 75a8cbf8f8..094d40fb21 100644
--- a/Fltk/spherePositionWidget.h
+++ b/Fltk/spherePositionWidget.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/statisticsWindow.cpp b/Fltk/statisticsWindow.cpp
index 5a431cc4e0..f17285986b 100644
--- a/Fltk/statisticsWindow.cpp
+++ b/Fltk/statisticsWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/statisticsWindow.h b/Fltk/statisticsWindow.h
index 59696a43ba..824a0d782d 100644
--- a/Fltk/statisticsWindow.h
+++ b/Fltk/statisticsWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/visibilityWindow.cpp b/Fltk/visibilityWindow.cpp
index 8302dcd7fc..4f86ebac5c 100644
--- a/Fltk/visibilityWindow.cpp
+++ b/Fltk/visibilityWindow.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Fltk/visibilityWindow.h b/Fltk/visibilityWindow.h
index 6ec5a7c6d4..1b294be9dc 100644
--- a/Fltk/visibilityWindow.h
+++ b/Fltk/visibilityWindow.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ACISEdge.cpp b/Geo/ACISEdge.cpp
index a02792cc96..f9bf010439 100644
--- a/Geo/ACISEdge.cpp
+++ b/Geo/ACISEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ACISEdge.h b/Geo/ACISEdge.h
index ed06a5683a..9a102fd03e 100644
--- a/Geo/ACISEdge.h
+++ b/Geo/ACISEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ACISFace.cpp b/Geo/ACISFace.cpp
index d5a5b5b67d..09d4b6ef81 100644
--- a/Geo/ACISFace.cpp
+++ b/Geo/ACISFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ACISFace.h b/Geo/ACISFace.h
index fa834b4106..a6e59e2ac8 100644
--- a/Geo/ACISFace.h
+++ b/Geo/ACISFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ACISVertex.cpp b/Geo/ACISVertex.cpp
index 3c902d13ca..4d1732745b 100644
--- a/Geo/ACISVertex.cpp
+++ b/Geo/ACISVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ACISVertex.h b/Geo/ACISVertex.h
index d242883710..b0ca6c7e8b 100644
--- a/Geo/ACISVertex.h
+++ b/Geo/ACISVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/CGNSOptions.h b/Geo/CGNSOptions.h
index a71a740c6d..ee6bf18202 100644
--- a/Geo/CGNSOptions.h
+++ b/Geo/CGNSOptions.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/CMakeLists.txt b/Geo/CMakeLists.txt
index 044b4fd80c..ac5d5e25af 100644
--- a/Geo/CMakeLists.txt
+++ b/Geo/CMakeLists.txt
@@ -1,11 +1,11 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
 
 set(SRC
   GEntity.cpp STensor3.cpp
-    GVertex.cpp GEdge.cpp GFace.cpp GRegion.cpp GPoint.cpp
+    GVertex.cpp GEdge.cpp GFace.cpp GRegion.cpp
     GEdgeLoop.cpp GEdgeCompound.cpp GFaceCompound.cpp GRegionCompound.cpp
     gmshVertex.cpp gmshEdge.cpp gmshFace.cpp gmshRegion.cpp gmshSurface.cpp
     OCCVertex.cpp OCCEdge.cpp OCCFace.cpp OCCRegion.cpp
diff --git a/Geo/Cell.cpp b/Geo/Cell.cpp
index f9b67aeef0..012b6ea9a8 100755
--- a/Geo/Cell.cpp
+++ b/Geo/Cell.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Cell.h b/Geo/Cell.h
index 07126932bb..b4d70205a1 100644
--- a/Geo/Cell.h
+++ b/Geo/Cell.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/CellComplex.cpp b/Geo/CellComplex.cpp
index 9d6cc52047..9d34cf5539 100644
--- a/Geo/CellComplex.cpp
+++ b/Geo/CellComplex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/CellComplex.h b/Geo/CellComplex.h
index 62340e6210..07c9180612 100644
--- a/Geo/CellComplex.h
+++ b/Geo/CellComplex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ChainComplex.cpp b/Geo/ChainComplex.cpp
index 7405b11d86..10f87d86d6 100644
--- a/Geo/ChainComplex.cpp
+++ b/Geo/ChainComplex.cpp
@@ -1,5 +1,5 @@
 
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ChainComplex.h b/Geo/ChainComplex.h
index 7092e3b11f..40489a540e 100644
--- a/Geo/ChainComplex.h
+++ b/Geo/ChainComplex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/CustomContainer.h b/Geo/CustomContainer.h
index 5fd517d4a0..7095e016d6 100644
--- a/Geo/CustomContainer.h
+++ b/Geo/CustomContainer.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ExtrudeParams.cpp b/Geo/ExtrudeParams.cpp
index 1d1fcc1bbd..42c55d2eef 100644
--- a/Geo/ExtrudeParams.cpp
+++ b/Geo/ExtrudeParams.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/ExtrudeParams.h b/Geo/ExtrudeParams.h
index e442907d5f..3dca383213 100644
--- a/Geo/ExtrudeParams.h
+++ b/Geo/ExtrudeParams.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEdge.cpp b/Geo/GEdge.cpp
index e0e88d0b9e..adf7d5431c 100644
--- a/Geo/GEdge.cpp
+++ b/Geo/GEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -14,7 +14,6 @@
 #include "MLine.h"
 #include "GaussLegendre1D.h"
 #include "Context.h"
-#include "Bindings.h"
 
 GEdge::GEdge(GModel *model, int tag, GVertex *_v0, GVertex *_v1)
   : GEntity(model, tag), _tooSmall(false), v0(_v0), v1(_v1), compound(0)
@@ -92,10 +91,6 @@ void GEdge::addFace(GFace *e)
   l_faces.push_back(e);
 }
 
-void GEdge::addLine (MLine *line){
-  lines.push_back(line);
-}
-
 void GEdge::delFace(GFace *e)
 {
   l_faces.erase(std::find(l_faces.begin(), l_faces.end(), e));
@@ -378,29 +373,3 @@ void GEdge::replaceEndingPoints (GVertex *replOfv0, GVertex *replOfv1)
   }  
 }
 
-void GEdge::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GEdge>("GEdge");
-  cb->setDescription("A GEdge is a geometrical 1D entity");
-  cb->setParentClass<GEntity>();
-  methodBinding *mb = cb->addMethod("getBeginVertex", &GEdge::getBeginVertex);
-  mb->setDescription("get the begin-vertex of the edge");
-  mb = cb->addMethod("getEndVertex", &GEdge::getEndVertex);
-  mb->setDescription("get the end-vertex of the edge");
-  mb = cb->addMethod("addLine", &GEdge::addLine);
-  mb->setDescription("insert a line mesh element");
-  mb->setArgNames("line", NULL);
-
-  mb = cb->addMethod("getLowBound", &GEdge::getLowBound);
-  mb->setDescription("get the lower bound of the parametrization of the Edge");
-  mb = cb->addMethod("getHighBound", &GEdge::getHighBound);
-  mb->setDescription("get the lower bound of the parametrization of the Edge");
-
-  mb = cb->addMethod("getMeshElement", &GEdge::getMeshElement);
-  mb->setDescription("get the mesh element with the given index");
-  mb->setArgNames("index", NULL);
-
-  //mb = cb->addMethod("point", &GEdge::point);
-  //mb->setDescription("returns the GPoint for a given double parameter");
-  //mb->setArgNames("double", NULL);
-}
diff --git a/Geo/GEdge.h b/Geo/GEdge.h
index 613a2fc982..0175dccefb 100644
--- a/Geo/GEdge.h
+++ b/Geo/GEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -206,9 +206,7 @@ class GEdge : public GEntity {
   
   std::vector<MLine*> lines;
 
-  void addLine(MLine *line);
-
-  static void registerBindings(binding *b);
+  void addLine(MLine *line){ lines.push_back(line); }
 };
 
 #endif
diff --git a/Geo/GEdgeCompound.cpp b/Geo/GEdgeCompound.cpp
index be9bae2603..c9ae6aebc6 100644
--- a/Geo/GEdgeCompound.cpp
+++ b/Geo/GEdgeCompound.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEdgeCompound.h b/Geo/GEdgeCompound.h
index 7c89011533..2862238896 100644
--- a/Geo/GEdgeCompound.h
+++ b/Geo/GEdgeCompound.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEdgeLoop.cpp b/Geo/GEdgeLoop.cpp
index 096ecef238..45ef147188 100644
--- a/Geo/GEdgeLoop.cpp
+++ b/Geo/GEdgeLoop.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEdgeLoop.h b/Geo/GEdgeLoop.h
index bc287006f8..591c23c09d 100644
--- a/Geo/GEdgeLoop.h
+++ b/Geo/GEdgeLoop.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GEntity.cpp b/Geo/GEntity.cpp
index 6a3258f54c..991ff4c86f 100644
--- a/Geo/GEntity.cpp
+++ b/Geo/GEntity.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -9,7 +9,6 @@
 #include "MElement.h"
 #include "VertexArray.h"
 #include "Context.h"
-#include "Bindings.h"
 #include "GVertex.h"
 #include "GEdge.h"
 #include "GFace.h"
@@ -70,45 +69,3 @@ GEdge *GEntity::cast2Edge() { return dynamic_cast<GEdge*>(this); }
 GFace *GEntity::cast2Face() { return dynamic_cast<GFace*>(this); }
 GRegion *GEntity::cast2Region() { return dynamic_cast<GRegion*>(this); }
 
-void GEntity::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GEntity>("GEntity");
-  cb->setDescription("A GEntity is a geometrical entity of the model.");
-  methodBinding *mb;
-  mb = cb->addMethod("getNumMeshElements",
-                     (unsigned int (GEntity::*)())&GEntity::getNumMeshElements);
-  mb->setDescription("return the number of mesh elements in this entity");
-  mb = cb->addMethod("getMeshElement",&GEntity::getMeshElement);
-  mb->setDescription("get the mesh element at the given index");
-  mb->setArgNames("index",NULL);
-  mb = cb->addMethod("getNumMeshVertices",
-                     (unsigned int (GEntity::*)())&GEntity::getNumMeshVertices);
-  mb->setDescription("return the number of mesh vertices in this entity");
-  mb = cb->addMethod("getMeshVertex",&GEntity::getMeshVertex);
-  mb->setDescription("get the mesh vertex at the given index");
-  mb->setArgNames("index",NULL);
-  mb = cb->addMethod("addMeshVertex",&GEntity::addMeshVertex);
-  mb->setDescription("insert a new mesh vertex");
-  mb->setArgNames("vertex",NULL);
-  mb = cb->addMethod("model", &GEntity::model);
-  mb->setDescription("returns the geometric model the entity belongs to.");
-  mb = cb->addMethod("cast2Vertex", &GEntity::cast2Vertex);
-  mb->setDescription("do a dynamic cast of the GEntity to a GVertex (0 if wrong cast).");
-  mb = cb->addMethod("cast2Edge", &GEntity::cast2Edge);
-  mb->setDescription("do a dynamic cast of the GEntity to a GEdge (0 if wrong cast).");
-  mb = cb->addMethod("cast2Face", &GEntity::cast2Face);
-  mb->setDescription("do a dynamic cast of the GEntity to a GFace (0 if wrong cast).");
-  mb = cb->addMethod("cast2Region", &GEntity::cast2Region);
-  mb->setDescription("do a dynamic cast of the GEntity to a GRegion (0 if wrong cast).");
-  mb = cb->addMethod("tag", &GEntity::tag);
-  mb->setDescription("return the tag of this entity.");
-  mb = cb->addMethod("getPhysicalEntities", &GEntity::getPhysicalEntities);
-  mb->setDescription("return a vector of all physical entities that this entity belongs to.");
-  mb = cb->addMethod("addPhysicalEntity", &GEntity::addPhysicalEntity);
-  mb->setArgNames("physicalGroupId",NULL);
-  mb->setDescription("add this element to a physical group.");
-
-}
-
-
-
diff --git a/Geo/GEntity.h b/Geo/GEntity.h
index 668ee76d4d..9f30f257bd 100644
--- a/Geo/GEntity.h
+++ b/Geo/GEntity.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -22,7 +22,6 @@ class GRegion;
 class MVertex;
 class MElement;
 class VertexArray;
-class binding;
 
 // A geometric model entity.
 class GEntity {
@@ -296,9 +295,6 @@ class GEntity {
   GEdge   *cast2Edge();
   GFace   *cast2Face();
   GRegion *cast2Region();
-
-  // bindings
-  static void registerBindings(binding *b);
 };
 
 class GEntityLessThan {
diff --git a/Geo/GFace.cpp b/Geo/GFace.cpp
index 09905244b9..65841628a6 100644
--- a/Geo/GFace.cpp
+++ b/Geo/GFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -18,7 +18,6 @@
 #include "GaussLegendre1D.h"
 #include "Context.h"
 #include "meshGFaceLloyd.h"
-#include "Bindings.h"
 #include "meshGFaceOptimize.h"
 
 #define SQU(a)      ((a)*(a))
@@ -1259,7 +1258,7 @@ void GFace::addLayersOfQuads(int nLayers, GVertex *gv, double hmin, double ratio
 	  double u = p1.x() + n.x() * hmin;
 	  double v = p1.y() + n.y() * hmin;
 	  GPoint gp = point(SPoint2(u,v));
-	  _additional_vertices.push_back(new MFaceVertex(gp.x(),gp.y(),gp.z(),this,u,v));
+	  additionalVertices.push_back(new MFaceVertex(gp.x(),gp.y(),gp.z(),this,u,v));
 	  fprintf(f,"SP(%g, %g, 0){1};\n",gp.x(),gp.y());
 	}
 	hlayer *= ratio;
@@ -1270,31 +1269,3 @@ void GFace::addLayersOfQuads(int nLayers, GVertex *gv, double hmin, double ratio
     }
   }  
 }
-
-
-#include "Bindings.h"
-
-void GFace::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GFace>("GFace");
-  cb->setParentClass<GEntity>();
-  cb->setDescription("A GFace is a geometrical 2D entity");
-  methodBinding *mb;
-  mb = cb->addMethod("lloyd", &GFace::lloyd);
-  mb->setDescription("do N iteration of Lloyd's algorithm using or not the infinite norm");
-  mb->setArgNames("N","infiniteNorm",NULL);
-  mb = cb->addMethod("addTriangle", &GFace::addTriangle);
-  mb->setDescription("insert a triangle mesh element");
-  mb->setArgNames("triangle", NULL);
-  mb = cb->addMethod("addQuadrangle", &GFace::addQuadrangle);
-  mb->setDescription("insert a quadrangle mesh element");
-  mb->setArgNames("quadrangle", NULL);
-  mb = cb->addMethod("edges", &GFace::edges);
-  mb->setDescription("return the list of edges bounding this surface");
-  mb = cb->addMethod("addLayersOfQuads", &GFace::addLayersOfQuads);
-  mb->setDescription("insert layers of quads");
-  mb->setArgNames("nLayers","startingVertex", "hmin", "ratio", NULL);
-/*  mb = cb->addMethod("addPolygon", &GFace::addPolygon);
-  mb->setDescription("insert a polygon mesh element");
-  mb->setArgNames("polygon", NULL);*/
-}
diff --git a/Geo/GFace.h b/Geo/GFace.h
index 5ff9dff192..d2e6895662 100644
--- a/Geo/GFace.h
+++ b/Geo/GFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -59,6 +59,16 @@ class GFace : public GEntity
  public: // this will become protected or private
   std::list<GEdgeLoop> edgeLoops;
 
+  // periodic counterparts of edges
+  std::map<int,int> edgeCounterparts;
+
+  // an array with additional vertices that are supposed to exist in
+  // the final mesh of the model face. This can be used for boundary
+  // layer meshes or when using Lloyd-like smoothing algorithms those
+  // vertices are classifed on this GFace, their type is MFaceVertex.
+  // After mesh generation, those are moved to the mesh_vertices array
+  std::vector<MVertex*> additionalVertices;
+
  public:
   GFace(GModel *model, int tag);
   virtual ~GFace();
@@ -250,6 +260,15 @@ class GFace : public GEntity
   // apply Lloyd's algorithm to the mesh
   void lloyd (int nIter, int infNorm = 0); 
 
+  // replace edges (gor gluing)
+  void replaceEdges(std::list<GEdge*> &);
+  
+  // tells if it's a sphere, and if it is, returns parameters
+  virtual bool isSphere (double &radius, SPoint3 &center) const {return false;}
+
+  // add layers of quads
+  void addLayersOfQuads (int nLayers, GVertex *start, double hmin, double factor);
+  
   struct {
     // do we recombine the triangles of the mesh?
     int recombine;
@@ -301,28 +320,6 @@ class GFace : public GEntity
   void addTriangle(MTriangle *t){ triangles.push_back(t); }
   void addQuadrangle(MQuadrangle *q){ quadrangles.push_back(q); }
   void addPolygon(MPolygon *p){ polygons.push_back(p); }
-
-  // an array with additional vertices that are supposed to exist
-  // in the final mesh of the model face. This can be used for 
-  // boundary layer meshes or when using Lloyd-like smoothing algorithms
-  // those vertices are classifed on this GFace, their type is MFaceVertex.
-  // After mesh generation, those are moved to the mesh_vertices array 
-  std::vector<MVertex*> _additional_vertices;
-
-  // replace edges (gor gluing)
-  void replaceEdges(std::list<GEdge*> &);
-  
-  static void registerBindings(binding *b);
-
-  // periodic counterparts of edges
-  std::map<int,int> edgeCounterparts;
-
-  // tells if it's a sphere, and if it is, returns parameters
-  virtual bool isSphere (double &radius, SPoint3 &center) const {return false;}
-
-  // add layers of quads
-  void addLayersOfQuads (int nLayers, GVertex *start, double hmin, double factor);
-  
 };
 
 #endif
diff --git a/Geo/GFaceCompound.cpp b/Geo/GFaceCompound.cpp
index a142f33f59..6adeb7e1ef 100644
--- a/Geo/GFaceCompound.cpp
+++ b/Geo/GFaceCompound.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GFaceCompound.h b/Geo/GFaceCompound.h
index 2613de7a4d..02f4df6a93 100644
--- a/Geo/GFaceCompound.h
+++ b/Geo/GFaceCompound.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp
index 150f413f51..820c2475d8 100644
--- a/Geo/GModel.cpp
+++ b/Geo/GModel.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -195,26 +195,6 @@ bool GModel::empty() const
   return vertices.empty() && edges.empty() && faces.empty() && regions.empty();
 }
 
-std::vector<GRegion*> GModel::bindingsGetRegions()
-{
-  return std::vector<GRegion*> (regions.begin(), regions.end());
-}
-
-std::vector<GFace*> GModel::bindingsGetFaces()
-{
-  return std::vector<GFace*> (faces.begin(), faces.end());
-}
-
-std::vector<GEdge*> GModel::bindingsGetEdges()
-{
-  return std::vector<GEdge*> (edges.begin(), edges.end());
-}
-
-std::vector<GVertex*> GModel::bindingsGetVertices()
-{
-  return std::vector<GVertex*> (vertices.begin(), vertices.end());
-}
-
 GRegion *GModel::getRegionByTag(int n) const
 {
   GEntity tmp((GModel*)this, n);
@@ -2161,11 +2141,6 @@ void GModel::glue(double eps)
   }    
 }
 
-void GModel::insertRegion(GRegion *r)
-{
-  regions.insert(r);
-}
-
 GEdge *getNewModelEdge(GFace *gf1, GFace *gf2, 
                        std::map<std::pair<int, int>, GEdge*> &newEdges)
 {
@@ -2499,183 +2474,3 @@ void GModel::createPartitionBoundaries(int createGhostCells)
   CreatePartitionBoundaries(this, createGhostCells);
 #endif
 }
-
-#include "Bindings.h"
-
-void GModel::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GModel>("GModel");
-  cb->setDescription("A GModel contains a geometry and its mesh.");
-
-  methodBinding *cm;
-  cm = cb->addMethod("mesh", &GModel::mesh);
-  cm->setArgNames("dim", NULL);
-  cm->setDescription("Generate a mesh of this model in dimension 'dim'.");
-  cm = cb->addMethod("setOrderN", &GModel::setOrderN);
-  cm->setArgNames("order", "linear", "incomplete", NULL);
-  cm->setDescription(" make the mesh a high order mesh at order N\n linear is 1 if the high order points are not placed on the geometry of the model\n incomplete is 1 if incomplete basis are used.");
-  cm = cb->addMethod("load", &GModel::load);
-  cm->setDescription("Merge the file 'filename' in this model, the file can be "
-                     "in any format (guessed from the extension) known by gmsh.");
-  cm->setArgNames("filename", NULL);
-  cm = cb->addMethod("setFactory", &GModel::setFactory);
-  cm->setDescription("Set the GModel factory: choose between 'Gmsh' or 'OpenCASCADE'.");
-  cm->setArgNames("name", NULL);
-  cm = cb->addMethod("save", &GModel::save);
-  cm->setDescription("Save this model in the file 'filename'. The content of the "
-                     "file depends on the format (guessed from the extension).");
-  cm->setArgNames("filename", NULL);
-  cm = cb->addMethod("getNumMeshElements", (int (GModel::*)())&GModel::getNumMeshElements);
-  cm->setDescription("return the number of mesh elemnts in the model");
-  cm = cb->addMethod("getMeshElementByTag", &GModel::getMeshElementByTag);
-  cm->setArgNames("tag", NULL);
-  cm->setDescription("access a mesh element by tag, using the element cache");
-  cm = cb->addMethod("getNumMeshVertices", &GModel::getNumMeshVertices);
-  cm->setDescription("return the total number of vertices in the mesh");
-  cm = cb->addMethod("getMeshVertexByTag", &GModel::getMeshVertexByTag);
-  cm->setDescription("access a mesh vertex by tag, using the vertex cache");
-  cm->setArgNames("tag", NULL);
-  cm = cb->addMethod("getNumRegions", &GModel::getNumRegions);
-  cm->setDescription("return the number of regions (3D geometrical entities)");
-  cm = cb->addMethod("getNumFaces", &GModel::getNumFaces);
-  cm->setDescription("return the number of faces (2D geometrical entities)");
-  cm = cb->addMethod("getNumEdges", &GModel::getNumEdges);
-  cm->setDescription("return the number of edges (1D geometrical entities)");
-  cm = cb->addMethod("getNumVertices", &GModel::getNumVertices);
-  cm->setDescription("return the number of vertices (0D geometrical entities)");
-  cm = cb->addMethod("getFaceByTag", &GModel::getFaceByTag);
-  cm->setDescription("access a geometrical face by tag");
-  cm->setArgNames("tag", NULL);
-  cm = cb->addMethod("getEdgeByTag", &GModel::getEdgeByTag);
-  cm->setDescription("access a geometrical edge by tag");
-  cm->setArgNames("tag", NULL);
-  cm = cb->addMethod("getVertexByTag", &GModel::getVertexByTag);
-  cm->setDescription("access a geometrical vertex by tag");
-  cm->setArgNames("tag", NULL);
-  cm = cb->addMethod("getRegionByTag", &GModel::getRegionByTag);
-  cm->setDescription("access a geometrical region by tag");
-  cm->setArgNames("tag", NULL);
-
-  cm = cb->addMethod("insertRegion", &GModel::insertRegion);
-  cm->setDescription("insert an existing region to the model list");
-  cm->setArgNames("region", NULL);
-  cm = cb->addMethod("getRegions", &GModel::bindingsGetRegions);
-  cm->setDescription("return a vector of the regions");
-  cm = cb->addMethod("getFaces", &GModel::bindingsGetFaces);
-  cm->setDescription("return a vector of the faces");
-  cm = cb->addMethod("getEdges", &GModel::bindingsGetEdges);
-  cm->setDescription("return a vector of the edges");
-  cm = cb->addMethod("getVertices", &GModel::bindingsGetVertices);
-  cm->setDescription("return a vector of the vertices");
-
-  cm = cb->addMethod("addVertex", &GModel::addVertex);
-  cm->setDescription("create a new vertex at position (x, y, z), with target "
-                     "mesh size lc");
-  cm->setArgNames("x", "y", "z", "lc", NULL);
-  cm = cb->addMethod("addLine", &GModel::addLine);
-  cm->setDescription("create a straight line going from v1 to v2");
-  cm->setArgNames("v1", "v2", NULL);
-  cm = cb->addMethod("addBezier", &GModel::addBezier);
-  cm->setDescription("create a spline going from v1 to v2 and with some control "
-                     "points listed in a fullMatrix(N,3)");
-  cm->setArgNames("v1", "v2", "controlPoints", NULL);
-  cm = cb->addMethod("addNURBS", &GModel::addNURBS);
-  cm->setDescription("creates a NURBS curve from v1 to v2 with control Points, "
-                     "knots, weights and multiplicities");
-  cm->setArgNames("v1", "v2", "{{poles}}","{knots}","{weights}","{mult}",NULL);
-  cm = cb->addMethod("addFace", &GModel::addFace);
-  cm->setDescription("creates a face that is constraint by edges and points");
-  cm->setArgNames("{list of edges}","{{x,y,z},{x,y,z},...}",NULL);
-  cm = cb->addMethod("addRuledFaces", &GModel::addRuledFaces);
-  cm->setDescription("create ruled faces that contains a list of wires");
-  cm->setArgNames("{{list of edges},{list of edges},...}",NULL);
-  cm = cb->addMethod("addPlanarFace", &GModel::addPlanarFace);
-  cm->setDescription("creates a planar face that contains a list of wires");
-  cm->setArgNames("{{list of edges},{list of edges},...}",NULL);
-  cm = cb->addMethod("addVolume", &GModel::addVolume);
-  cm->setDescription("creates a Volume bounded by a list of faces");
-  cm->setArgNames("{{list of faces},{list of faces},...}",NULL);
-  cm = cb->addMethod("addPipe", &GModel::addPipe);
-  cm->setDescription("creates a pipe with a base and a wire for the direction");
-  cm->setArgNames("ge","{list of edges}",NULL);
-  cm = cb->addMethod("addCircleArcCenter", &GModel::addCircleArcCenter);
-  cm->setDescription("create a circle arc going from v1 to v2 with its center "
-                     "at (x,y,z)");
-  cm->setArgNames("x", "y", "z", "v1", "v2", NULL);
-  cm = cb->addMethod("addCircleArc3Points", &GModel::addCircleArc3Points);
-  cm->setDescription("create a circle arc going from v1 to v2 with an "
-                     "intermediary point Xi(x,y,z)");
-  cm->setArgNames("x", "y", "z", "v1", "v2", NULL);
-  cm = cb->addMethod("revolve", &GModel::revolve);
-  cm->setDescription("revolve an entity of a given angle. Axis is defined by 2 "
-                     "points");
-  cm->setArgNames("entity", "{x1,y1,z1}", "{x2,y2,z2}", "angle", NULL);
-  cm = cb->addMethod("extrude", &GModel::extrude);
-  cm->setDescription("extrudes an entity. Axis is defined by 2 points");
-  cm->setArgNames("entity", "{x1,y1,z1}", "{x2,y2,z2}", NULL);
-  cm = cb->addMethod("addSphere", &GModel::addSphere);
-  cm->setDescription("add a sphere");
-  cm->setArgNames("xc", "yc", "zc", "radius", NULL);
-  cm = cb->addMethod("addBlock", &GModel::addBlock);
-  cm->setDescription("add a block");
-  cm->setArgNames("{x1,y1,z1}", "{x2,y2,z2}", NULL);
-  cm = cb->addMethod("addCone", &GModel::addCone);
-  cm->setDescription("add a cone");
-  cm->setArgNames("{x1,y1,z1}","{x2,y2,z2}","R1","R2",NULL);
-  cm = cb->addMethod("addCylinder", &GModel::addCylinder);
-  cm->setDescription("add a cylinder");
-  cm->setArgNames("{x1,y1,z1}","{x2,y2,z2}", "R",NULL);
-  cm = cb->addMethod("addTorus", &GModel::addTorus);
-  cm->setDescription("add a torus");
-  cm->setArgNames("{x1,y1,z1}","{x2,y2,z2}","R1","R2",NULL);
-  cm = cb->addMethod("computeUnion", &GModel::computeBooleanUnion);
-  cm->setDescription("compute the boolean union of the model with another one "
-                     "(tool). The third parameter tells if a new model has to "
-                     "be created");
-  cm->setArgNames("tool", "createNewGModel",NULL);
-  cm = cb->addMethod("computeIntersection", &GModel::computeBooleanIntersection);
-  cm->setDescription("compute the boolean intersection of the model with another "
-                     "one. The third parameter tells if a new model has to be created");
-  cm->setArgNames("tool","createNewGModel",NULL);
-  cm = cb->addMethod("computeDifference", &GModel::computeBooleanDifference);
-  cm->setDescription("compute the boolean difference of the model with another "
-                     "one (tool). The third parameter tells if a new model has to "
-                     "be created");
-  cm->setArgNames("tool","createNewGModel",NULL);
-  cm = cb->addMethod("glue", &GModel::glue);
-  cm->setDescription("glue the geometric model using geometric tolerance eps");
-  cm->setArgNames("eps",NULL);
-  cm = cb->addMethod("setAsCurrent", &GModel::setAsCurrent);
-  cm->setDescription("set the model as the current (active) one");
-  cm = cb->setConstructor<GModel>();
-  cm->setDescription("Create an empty GModel");
-
-  cm = cb->addMethod("getPhysicalName", &GModel::getPhysicalName);
-  cm->setDescription("get the name of an physical group, identified by its "
-                     "dimension and number. Returns empty string if physical "
-                     "name is not assigned");
-  cm->setArgNames("dim","number",NULL);
-  cm = cb->addMethod("setPhysicalName", &GModel::setPhysicalName);
-  cm->setDescription("set the name of an physical group, identified by its "
-                     "dimension and number. If number=0, the first free number "
-                     "is chosen. Returns the number.");
-  cm->setArgNames("physicalName","dim","number",NULL);
-
-  cm = cb->addMethod("createTopology", &GModel::createTopologyFromMesh);
-  cm->setDescription("build the topology for a given mesh.");
-  cm->setArgNames(NULL);
-
-  cm = cb->addMethod("detectEdges", &GModel::detectEdges);
-  cm->setDescription(" use an angle threshold to tag edges.");
-  cm->setArgNames("angle",NULL);
-
-  cm = cb->addMethod("createPartitionBoundaries", &GModel::createPartitionBoundaries);
-  cm->setDescription("Assigns partition tags to boundary elements. Should be called "
-                     "only after the partitions have been assigned");
-  cm->setArgNames("createGhostCells",NULL);
-
-
-  cm = cb->addMethod("scaleMesh", &GModel::scaleMesh);
-  cm->setDescription("scale the mesh by a factor");
-  cm->setArgNames("factor",NULL);
-}
diff --git a/Geo/GModel.h b/Geo/GModel.h
index 4595ab2ff5..177b926589 100644
--- a/Geo/GModel.h
+++ b/Geo/GModel.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -28,7 +28,6 @@ class CGNSOptions;
 class gLevelset;
 class discreteFace;
 class discreteRegion;
-class binding;
 class MElementOctree;
 class GModelFactory;
 
@@ -118,9 +117,6 @@ class GModel
   std::set<GEdge*, GEntityLessThan> edges;
   std::set<GVertex*, GEntityLessThan> vertices;
 
-  // for bindings
-  void insertRegion(GRegion*);
-
   // map between the pair <dimension, elementary or physical number>
   // and an optional associated name
   std::map<std::pair<int, int>, std::string> physicalNames, elementaryNames;
@@ -209,12 +205,6 @@ class GModel
   GEdge *getEdgeByTag(int n) const;
   GVertex *getVertexByTag(int n) const;
   
-  // for lua bindings, temporary solution while iterator are not binded
-  std::vector<GRegion*> bindingsGetRegions();
-  std::vector<GFace*> bindingsGetFaces();
-  std::vector<GEdge*> bindingsGetEdges();
-  std::vector<GVertex*> bindingsGetVertices();
-
   // add/remove an entity in the model
   void add(GRegion *r) { regions.insert(r); }
   void add(GFace *f) { faces.insert(f); }
@@ -382,8 +372,7 @@ class GModel
   // glue entities in the model (assume a tolerance eps and merge
   // vertices that are too close, then merge edges, faces and
   // regions). Warning: the gluer changes the geometric model, so that
-  // some pointers could become invalid. FIXME: using references to
-  // some tables of pointers for bindings e.g. could be better.
+  // some pointers could become invalid.
   void glue(double eps);
 
   // change the entity creation factory
@@ -420,9 +409,9 @@ class GModel
                    double radius2);
 
   // boolean operators acting on 2 models
-  GModel *computeBooleanUnion(GModel *tool, int createNewModel);
-  GModel *computeBooleanIntersection(GModel *tool, int createNewModel);
-  GModel *computeBooleanDifference(GModel *tool, int createNewModel);
+  GModel *computeBooleanUnion(GModel *tool, int createNewModel=0);
+  GModel *computeBooleanIntersection(GModel *tool, int createNewModel=0);
+  GModel *computeBooleanDifference(GModel *tool, int createNewModel=0);
 
   // build a new GModel by cutting the elements crossed by the levelset ls
   // if cutElem is set to false, split the model without cutting the elements
@@ -457,6 +446,10 @@ class GModel
     _associateEntityWithMeshVertices();
   }
 
+  // "automatic" IO based on Gmsh global functions
+  void load(std::string fileName);
+  void save(std::string fileName);
+
   // Gmsh native CAD format (readGEO is static, since it can create
   // multiple models)
   static int readGEO(const std::string &name);
@@ -566,13 +559,6 @@ class GModel
   
   // CEA triangulation
   int writeMAIL(const std::string &name, bool saveAll, double scalingFactor);
-  
-  int readLUA(const std::string &name);
-
-  void save(std::string fileName);
-  void load(std::string fileName);
-
-  static void registerBindings(binding *b);
 };
 
 #endif
diff --git a/Geo/GModelFactory.cpp b/Geo/GModelFactory.cpp
index d7eb3495e8..ce18e3bb22 100644
--- a/Geo/GModelFactory.cpp
+++ b/Geo/GModelFactory.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelFactory.h b/Geo/GModelFactory.h
index f79a680f59..3688606632 100644
--- a/Geo/GModelFactory.h
+++ b/Geo/GModelFactory.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_ACIS.cpp b/Geo/GModelIO_ACIS.cpp
index 062e0fa9ad..cd39c20e43 100644
--- a/Geo/GModelIO_ACIS.cpp
+++ b/Geo/GModelIO_ACIS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_CGNS.cpp b/Geo/GModelIO_CGNS.cpp
index 4ed7f00a55..c476b4eb8a 100644
--- a/Geo/GModelIO_CGNS.cpp
+++ b/Geo/GModelIO_CGNS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_Fourier.cpp b/Geo/GModelIO_Fourier.cpp
index 6f5267db96..2f63b4e1c7 100644
--- a/Geo/GModelIO_Fourier.cpp
+++ b/Geo/GModelIO_Fourier.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_Fourier.h b/Geo/GModelIO_Fourier.h
index b7370da793..664faef544 100644
--- a/Geo/GModelIO_Fourier.h
+++ b/Geo/GModelIO_Fourier.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_Geo.cpp b/Geo/GModelIO_Geo.cpp
index 711371a7bb..553fb0df0d 100644
--- a/Geo/GModelIO_Geo.cpp
+++ b/Geo/GModelIO_Geo.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_MED.cpp b/Geo/GModelIO_MED.cpp
index 827a7b3df7..81557aabfc 100644
--- a/Geo/GModelIO_MED.cpp
+++ b/Geo/GModelIO_MED.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -76,43 +76,27 @@ int med2mshElementType(med_geometrie_element med)
 int med2mshNodeIndex(med_geometrie_element med, int k)
 {
   switch(med) {
-  case MED_SEG2: return k;
-  case MED_TRIA3: {
-    static const int map[3] = {0, 2, 1}; 
-    return map[k]; 
-  }
-  case MED_QUAD4: { 
-    static const int map[4] = {0, 3, 2, 1};
-    return map[k];
-  }
+  case MED_POINT1: 
+  case MED_SEG2:
+  case MED_SEG3: 
+  case MED_TRIA3:
+  case MED_TRIA6: 
+  case MED_QUAD4:
+  case MED_QUAD8:
+    {
+      // same node numbering as in Gmsh
+      return k;
+    }
   case MED_TETRA4: {
     static const int map[4] = {0, 2, 1, 3};
     return map[k];
   }
-  case MED_HEXA8: {
-    static const int map[8] = {0, 3, 2, 1, 4, 7, 6, 5};
-    return map[k];
-  }
-  case MED_PENTA6: {
-    static const int map[6] = {0, 2, 1, 3, 5, 4};
-    return map[k];
-  }
-  case MED_PYRA5: {
-    static const int map[5] = {0, 3, 2, 1, 4};
-    return map[k];
-  }
-  case MED_SEG3: return k;
-  case MED_TRIA6: {
-    static const int map[6] = {0, 2, 1, 5, 4, 3};
-    return map[k];
-  }
   case MED_TETRA10: {
     static const int map[10] = {0, 2, 1, 3, 6, 5, 4, 7, 8, 9};
     return map[k];
   }
-  case MED_POINT1: return k;
-  case MED_QUAD8: {
-    static const int map[8] = {0, 3, 2, 1, 7, 6, 5, 4};
+  case MED_HEXA8: {
+    static const int map[8] = {0, 3, 2, 1, 4, 7, 6, 5};
     return map[k];
   }
   case MED_HEXA20: {
@@ -120,10 +104,18 @@ int med2mshNodeIndex(med_geometrie_element med, int k)
                                 10, 19, 9, 18, 17, 15, 12, 14, 13};
     return map[k];
   }
+  case MED_PENTA6: {
+    static const int map[6] = {0, 2, 1, 3, 5, 4};
+    return map[k];
+  }
   case MED_PENTA15: {
     static const int map[15] = {0, 2, 1, 3, 5, 4, 8, 6, 12, 7, 14, 13, 11, 9, 10};
     return map[k];
   }
+  case MED_PYRA5: {
+    static const int map[5] = {0, 3, 2, 1, 4};
+    return map[k];
+  }
   case MED_PYRA13: {
     static const int map[13] = {0, 3, 2, 1, 4, 8, 5, 9, 7, 12, 6, 11, 10};
     return map[k];
@@ -350,9 +342,9 @@ static void fillElementsMED(med_int family, std::vector<T*> &elements,
     return;
   }
   for(unsigned int i = 0; i < elements.size(); i++){
-    //elements[i]->setVolumePositive();
+    elements[i]->setVolumePositive();
     for(int j = 0; j < elements[i]->getNumVertices(); j++)
-      conn.push_back(elements[i]->getVertexMED(j)->getIndex());
+      conn.push_back(elements[i]->getVertex(med2mshNodeIndex(type, j))->getIndex());
     fam.push_back(family);
   }
 }
diff --git a/Geo/GModelIO_Mesh.cpp b/Geo/GModelIO_Mesh.cpp
index d92d060f43..da5b4aadcb 100644
--- a/Geo/GModelIO_Mesh.cpp
+++ b/Geo/GModelIO_Mesh.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -31,7 +31,6 @@
 #include "MVertexPositionSet.h"
 #include "Context.h"
 #include "OS.h"
-#include "Bindings.h"
 
 #if defined(HAVE_POST)
 #include "PView.h"
@@ -3331,15 +3330,7 @@ int GModel::readDIFF(const std::string &name)
   fclose(fp);
   return 1;
 }
-int GModel::readLUA(const std::string &name)
-{
-#if defined(HAVE_LUA)
-	int status = binding::instance()->readFile(name.c_str());
-	return status;
-#else
-	return 0;
-#endif
-}
+
 int GModel::writeDIFF(const std::string &name, bool binary, bool saveAll,
                       double scalingFactor)
 {
diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp
index c304d918ed..a14f35175b 100644
--- a/Geo/GModelIO_OCC.cpp
+++ b/Geo/GModelIO_OCC.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelIO_OCC.h b/Geo/GModelIO_OCC.h
index e81946f09e..487d0a061e 100644
--- a/Geo/GModelIO_OCC.h
+++ b/Geo/GModelIO_OCC.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GModelVertexArrays.cpp b/Geo/GModelVertexArrays.cpp
index e4a9e19a77..4d0b58c98d 100644
--- a/Geo/GModelVertexArrays.cpp
+++ b/Geo/GModelVertexArrays.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GPoint.cpp b/Geo/GPoint.cpp
index 4fa2165af0..b9a927dfba 100644
--- a/Geo/GPoint.cpp
+++ b/Geo/GPoint.cpp
@@ -1,21 +1,5 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
 
-#include "GPoint.h"
-#include "Bindings.h"
-
-void GPoint::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GPoint>("GPoint");
-  cb->setDescription("A GPoint.");
-  methodBinding *cm;
-  cm = cb->addMethod("x", (double (GPoint::*)() const) &GPoint::x);
-  cm->setDescription("Return the x-coordinate.");
-  cm = cb->addMethod("y", (double (GPoint::*)() const) &GPoint::y);
-  cm->setDescription("Return the y-coordinate.");
-  cm = cb->addMethod("z", (double (GPoint::*)() const) &GPoint::z);
-  cm->setDescription("Return the z-coordinate.");
-
-}
diff --git a/Geo/GPoint.h b/Geo/GPoint.h
index eff8f377e6..4b3c87c880 100644
--- a/Geo/GPoint.h
+++ b/Geo/GPoint.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -9,7 +9,6 @@
 #include <math.h>
 
 class GEntity;
-class binding;
 
 class GPoint
 {
@@ -55,8 +54,6 @@ class GPoint
   }
   bool succeeded() const{ return success; }
   bool setNoSuccess(){ success = false; return success; }
-
-  static void registerBindings(binding *b);
 };
 
 #endif
diff --git a/Geo/GRegion.cpp b/Geo/GRegion.cpp
index 19a4916cf1..c2b04e7042 100644
--- a/Geo/GRegion.cpp
+++ b/Geo/GRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -14,7 +14,6 @@
 #include "MElementCut.h"
 #include "GmshMessage.h"
 #include "VertexArray.h"
-#include "Bindings.h"
 
 GRegion::GRegion(GModel *model, int tag) : GEntity (model, tag)
 {
@@ -381,26 +380,3 @@ double GRegion::computeSolidProperties (std::vector<double> cg,
   return volume;
 }
 
-void GRegion::addPrism(MPrism *p) 
-{
-  prisms.push_back(p); 
-}
-
-void GRegion::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GRegion>("GRegion");
-  cb->setDescription("A GRegion is a geometrical 3D entity");
-  cb->setParentClass<GEntity>();
-  methodBinding *cm = cb->setConstructor<GRegion,GModel*,int>();
-  cm->setDescription("create a new GRegion");
-  cm->setArgNames("model","tag",NULL);
-  cm = cb->addMethod("set",&GRegion::set);
-  cm->setDescription("set the faces that bound this region");
-  cm->setArgNames("faces",NULL);
-  cm = cb->addMethod("addPrism", &GRegion::addPrism);
-  cm->setDescription("insert a prism mesh element");
-  cm->setArgNames("prism", NULL);
-  cm = cb->addMethod("computeSolidProperties", &GRegion::computeSolidProperties);
-  cm->setDescription("returns the volume and computes the center of gravity and tensor of inertia of the volume (requires a surface mesh)");
-  cm->setArgNames("cg","inertia", NULL);
-}
diff --git a/Geo/GRegion.h b/Geo/GRegion.h
index d00fe5ddc8..4a199e85b5 100644
--- a/Geo/GRegion.h
+++ b/Geo/GRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -19,7 +19,6 @@ class MPrism;
 class MPyramid;
 class MPolyhedron;
 class ExtrudeParams;
-class bindings;
 
 // A model region.
 class GRegion : public GEntity {
@@ -61,6 +60,13 @@ class GRegion : public GEntity {
   // check if the region is connected to another region by an edge
   bool edgeConnected(GRegion *r) const;
 
+  // replace edges (gor gluing)
+  void replaceFaces (std::list<GFace*> &);
+
+  // compute volume, moment of intertia and center of gravity
+  double computeSolidProperties (std::vector<double> cg,
+				 std::vector<double> inertia);
+
   // return a type-specific additional information string
   virtual std::string getAdditionalInfoString();
 
@@ -102,16 +108,11 @@ class GRegion : public GEntity {
   std::vector<MPyramid*> pyramids;
   std::vector<MPolyhedron*> polyhedra;
 
-  void addPrism(MPrism *p);
-
-  // replace edges (gor gluing)
-  void replaceFaces (std::list<GFace*> &);
-
-  // compute volume, moment of intertia and center of gravity
-  double computeSolidProperties (std::vector<double> cg,
-				 std::vector<double> inertia);
-
-  static void registerBindings(binding *b);
+  void addTetrahedron(MTetrahedron *t){ tetrahedra.push_back(t); }
+  void addHexahedron(MHexahedron *h){ hexahedra.push_back(h); }
+  void addPrism(MPrism *p){ prisms.push_back(p); }
+  void addPyramid(MPyramid *p){ pyramids.push_back(p); }
+  void addPolyhedron(MPolyhedron *p){ polyhedra.push_back(p); }
 };
 
 #endif
diff --git a/Geo/GRegionCompound.cpp b/Geo/GRegionCompound.cpp
index 779975b7c6..a89a37a108 100644
--- a/Geo/GRegionCompound.cpp
+++ b/Geo/GRegionCompound.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GRegionCompound.h b/Geo/GRegionCompound.h
index 9dc32ff32b..4709b78ac1 100644
--- a/Geo/GRegionCompound.h
+++ b/Geo/GRegionCompound.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GVertex.cpp b/Geo/GVertex.cpp
index 3e6c9b6a2c..00bf161088 100644
--- a/Geo/GVertex.cpp
+++ b/Geo/GVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -10,7 +10,6 @@
 #include "GFace.h"
 #include "MPoint.h"
 #include "GmshMessage.h"
-#include "Bindings.h"
 
 GVertex::GVertex(GModel *m, int tag, double ms) : GEntity(m, tag), meshSize(ms) 
 {
@@ -93,17 +92,3 @@ bool GVertex::isOnSeam(const GFace *gf) const
   }
   return false;
 }
-
-void GVertex::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<GVertex>("GVertex");
-  cb->setDescription("A GVertex is a geometrical 0D entity");
-  cb->setParentClass<GEntity>();
-  methodBinding *cm;
-  cm = cb->addMethod("x", (double (GVertex::*)() const) &GVertex::x);
-  cm->setDescription("Return the x-coordinate.");
-  cm = cb->addMethod("y", (double (GVertex::*)() const) &GVertex::y);
-  cm->setDescription("Return the y-coordinate.");
-  cm = cb->addMethod("z", (double (GVertex::*)() const) &GVertex::z);
-  cm->setDescription("Return the z-coordinate.");
-}
diff --git a/Geo/GVertex.h b/Geo/GVertex.h
index d179e6fac7..f57c96c6c7 100644
--- a/Geo/GVertex.h
+++ b/Geo/GVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -81,7 +81,7 @@ class GVertex : public GEntity
 
   std::vector<MPoint*> points;
 
-  static void registerBindings(binding *b);
+  void addPoint(MPoint *p){ points.push_back(p); }
 };
 
 #endif
diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp
index 901a199ec9..cb128536f0 100644
--- a/Geo/Geo.cpp
+++ b/Geo/Geo.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Geo.h b/Geo/Geo.h
index af355f3ef4..9f778d9473 100644
--- a/Geo/Geo.h
+++ b/Geo/Geo.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeoInterpolation.cpp b/Geo/GeoInterpolation.cpp
index b2aeda6599..5f4b827b5d 100644
--- a/Geo/GeoInterpolation.cpp
+++ b/Geo/GeoInterpolation.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeoInterpolation.h b/Geo/GeoInterpolation.h
index 87806593fe..fc98a7abb7 100644
--- a/Geo/GeoInterpolation.h
+++ b/Geo/GeoInterpolation.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeoStringInterface.cpp b/Geo/GeoStringInterface.cpp
index ad30bcb3d7..5a9f2f63a3 100644
--- a/Geo/GeoStringInterface.cpp
+++ b/Geo/GeoStringInterface.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeoStringInterface.h b/Geo/GeoStringInterface.h
index aba6d57346..4f1fb4af5b 100644
--- a/Geo/GeoStringInterface.h
+++ b/Geo/GeoStringInterface.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeomMeshMatcher.cpp b/Geo/GeomMeshMatcher.cpp
index 03060d8568..1e8e568574 100644
--- a/Geo/GeomMeshMatcher.cpp
+++ b/Geo/GeomMeshMatcher.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/GeomMeshMatcher.h b/Geo/GeomMeshMatcher.h
index 0810ac185c..7ec6f51002 100644
--- a/Geo/GeomMeshMatcher.h
+++ b/Geo/GeomMeshMatcher.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Homology.cpp b/Geo/Homology.cpp
index a484730d50..6914e37f0a 100644
--- a/Geo/Homology.cpp
+++ b/Geo/Homology.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Homology.h b/Geo/Homology.h
index 9c75225296..5f497f8bb7 100644
--- a/Geo/Homology.h
+++ b/Geo/Homology.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 // 
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MEdge.h b/Geo/MEdge.h
index ad517128cb..c80a0cbba6 100644
--- a/Geo/MEdge.h
+++ b/Geo/MEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MEdgeHash.h b/Geo/MEdgeHash.h
index c0f2118278..cd36e23b26 100644
--- a/Geo/MEdgeHash.h
+++ b/Geo/MEdgeHash.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MElement.cpp b/Geo/MElement.cpp
index 285243f2a9..7bd56a56ad 100644
--- a/Geo/MElement.cpp
+++ b/Geo/MElement.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -169,6 +169,7 @@ int MElement::getVolumeSign()
 
 bool MElement::setVolumePositive()
 {
+  if(getDim() < 3) return true;
   int s = getVolumeSign();
   if(s < 0) revert();
   if(!s) return false;
@@ -269,12 +270,6 @@ double MElement::getJacobian(double u, double v, double w, double jac[3][3])
   return _computeDeterminantAndRegularize(this, jac);
 }
 
-//binded
-double MElement::getJacobianDeterminant(double u, double v, double w) {
-  double jac[3][3];
-  return getJacobian(u,v,w,jac);
-}
-
 double MElement::getJacobian(const fullMatrix<double> &gsf, double jac[3][3])
 {
   jac[0][0] = jac[0][1] = jac[0][2] = 0.;
@@ -1272,49 +1267,11 @@ const fullMatrix<double> &MElement::getGradShapeFunctionsAtNodes (int functionSp
   return mat;
 }
 
-void MElement::xyzTouvw(fullMatrix<double> *xu){
+void MElement::xyzTouvw(fullMatrix<double> *xu)
+{
   double _xyz[3] = {(*xu)(0,0),(*xu)(0,1),(*xu)(0,2)},_uvw[3] ;
   xyz2uvw(_xyz,_uvw);
   (*xu)(1,0) = _uvw[0];
   (*xu)(1,1) = _uvw[1];
   (*xu)(1,2) = _uvw[2];
 }
-
-
-#include "Bindings.h"
-
-void MElement::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<MElement>("MElement");
-  cb->setDescription("A mesh element.");
-  methodBinding *cm;
-  cm = cb->addMethod("getNum",&MElement::getNum);
-  cm->setDescription("return the tag of the element");
-  cm = cb->addMethod("getNumVertices", &MElement::getNumVertices);
-  cm->setDescription("get the number of vertices of this element");
-  cm = cb->addMethod("getVertex", &MElement::getVertex);
-  cm->setDescription("return the i-th vertex of this element");
-  cm->setArgNames("i",NULL);
-  cm = cb->addMethod("getType", &MElement::getType);
-  cm->setDescription("get the type of the element");
-  cm = cb->addMethod("getTypeForMSH", &MElement::getTypeForMSH);
-  cm->setDescription("get the gmsh type of the element");
-  cm = cb->addMethod("getPartition", &MElement::getPartition);
-  cm->setDescription("get the partition to which the element belongs");
-  cm = cb->addMethod("setPartition", &MElement::setPartition);
-  cm->setDescription("set the partition to which the element belongs");
-  cm->setArgNames("iPartition",NULL);
-  cm = cb->addMethod("getPolynomialOrder", &MElement::getPolynomialOrder);
-  cm->setDescription("return the polynomial order the element");
-  cm = cb->addMethod("getDim", &MElement::getDim);
-  cm->setDescription("return the geometrical dimension of the element");
-  cm = cb->addMethod("getJacobianDeterminant", &MElement::getJacobianDeterminant);
-  cm->setDescription("return the jacobian of the determinant of the transformation");
-  cm->setArgNames("u","v","w",NULL);
-  cm = cb->addMethod("xyzTouvw", &MElement::xyzTouvw);
-  cm->setDescription("get uvw from xyz");
-  cm->setArgNames("xyzuvw",NULL);
-  cm = cb->addMethod("getVertex", &MElement::getVertex);
-  cm->setDescription("get the vertex with the given index");
-  cm->setArgNames("index",NULL);
-}
diff --git a/Geo/MElement.h b/Geo/MElement.h
index 0ef83ff584..aa649f97d1 100644
--- a/Geo/MElement.h
+++ b/Geo/MElement.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -19,7 +19,6 @@
 #include "Gauss.h"
 
 class GFace;
-class binding;
 
 // A mesh element.
 class MElement
@@ -101,9 +100,6 @@ class MElement
   // get the vertex using the Nastran BDF ordering
   virtual MVertex *getVertexBDF(int num){ return getVertex(num); }
 
-  // get the vertex using MED ordering
-  virtual MVertex *getVertexMED(int num){ return getVertex(num); }
-
   // get the vertex using DIFF ordering
   virtual MVertex *getVertexDIFF(int num){ return getVertex(num); }
 
@@ -255,7 +251,10 @@ class MElement
   double getJacobian(const fullMatrix<double> &gsf, double jac[3][3]);
   double getJacobian(double u, double v, double w, double jac[3][3]);
   double getPrimaryJacobian(double u, double v, double w, double jac[3][3]);
-  double getJacobianDeterminant(double u, double v, double w);
+  double getJacobianDeterminant(double u, double v, double w)
+  {
+    double jac[3][3]; return getJacobian(u, v, w, jac);
+  }
   virtual int getNumShapeFunctions(){ return getNumVertices(); }
   virtual int getNumPrimaryShapeFunctions(){ return getNumPrimaryVertices(); }
   virtual MVertex *getShapeFunctionNode(int i){ return getVertex(i); }
@@ -338,7 +337,6 @@ class MElement
   static int getInfoMSH(const int typeMSH, const char **const name=0);
   virtual int getNumVerticesForMSH() { return getNumVertices(); }
   virtual int *getVerticesIdForMSH();
-  static void registerBindings(binding *b);
 
   // copy element and parent if any, vertexMap contains the new vertices
   virtual MElement *copy(int &num, std::map<int, MVertex*> &vertexMap,
diff --git a/Geo/MElementCut.cpp b/Geo/MElementCut.cpp
index 749adbd68b..438c7c0081 100644
--- a/Geo/MElementCut.cpp
+++ b/Geo/MElementCut.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MElementCut.h b/Geo/MElementCut.h
index 147c5715e9..7c0a7c7f5d 100644
--- a/Geo/MElementCut.h
+++ b/Geo/MElementCut.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MElementOctree.cpp b/Geo/MElementOctree.cpp
index 439bc9d9cc..3bdbf8b7e3 100644
--- a/Geo/MElementOctree.cpp
+++ b/Geo/MElementOctree.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MElementOctree.h b/Geo/MElementOctree.h
index 4b8511f52f..dc23f530b3 100644
--- a/Geo/MElementOctree.h
+++ b/Geo/MElementOctree.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MFace.cpp b/Geo/MFace.cpp
index 1fae559709..4a4005ab46 100644
--- a/Geo/MFace.cpp
+++ b/Geo/MFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MFace.h b/Geo/MFace.h
index 01cbfd4622..a4cb1dc830 100644
--- a/Geo/MFace.h
+++ b/Geo/MFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MFaceHash.h b/Geo/MFaceHash.h
index 799bbb861c..293f9e9d76 100644
--- a/Geo/MFaceHash.h
+++ b/Geo/MFaceHash.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MHexahedron.cpp b/Geo/MHexahedron.cpp
index b75c7336b9..c008a557db 100644
--- a/Geo/MHexahedron.cpp
+++ b/Geo/MHexahedron.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MHexahedron.h b/Geo/MHexahedron.h
index 6b6a33f415..f015c66e3f 100644
--- a/Geo/MHexahedron.h
+++ b/Geo/MHexahedron.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -58,11 +58,6 @@ class MHexahedron : public MElement {
   virtual int getNumVertices() const { return 8; }
   virtual MVertex *getVertex(int num){ return _v[num]; }
   virtual const polynomialBasis* getFunctionSpace(int o=-1) const;
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[8] = {0, 3, 2, 1, 4, 7, 6, 5};
-    return getVertex(map[num]);
-  }
   virtual MVertex *getVertexDIFF(int num)
   {
     static const int map[8] = {2, 3, 7, 6, 0, 1, 5, 4};
@@ -275,12 +270,6 @@ class MHexahedron20 : public MHexahedron {
                                 9, 10, 12, 14, 15, 16, 18, 19, 17};
     return getVertex(map[num]);
   }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[20] = {0, 3, 2, 1, 4, 7, 6, 5, 9, 13, 11,
-                                8, 17, 19, 18, 16, 10, 15, 14, 12};
-    return getVertex(map[num]);
-  }
   virtual MVertex *getVertexDIFF(int num)
   {
     static const int map[20] = {2, 3, 7, 6, 0, 1, 5, 4, 9, 18, 12,
diff --git a/Geo/MLine.cpp b/Geo/MLine.cpp
index 66e84489c2..96184bdce3 100644
--- a/Geo/MLine.cpp
+++ b/Geo/MLine.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -60,28 +60,3 @@ double MLine::getInnerRadius()
 {
   return _v[0]->distance(_v[1]);
 }
-
-#include "Bindings.h"
-static MLine* MLine_binding(std::vector<MVertex*> v) {
-  if (v.size() == 2)
-    return new MLine(v);
-  if (v.size() == 3)
-    return new MLine3(v);
-  return new MLineN(v);
-}
-
-void MLine::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<MLine>("MLine");
-  cb->setDescription("A line mesh element.");
-
-  methodBinding *cm;
-  cm = cb->addMethod("MLine",&MLine_binding);
-  cm->setArgNames("vectorOfVertices", NULL);
-  cm->setDescription("Create a new line mesh element with the given vertices. "
-                     "First 2 vertices must correspond to the beginning/end of the line.");
-//   cm = cb->setConstructor<MLine,MVertex*,MVertex*>();
-//   cm->setArgNames("v0","v1", NULL);
-//   cm->setDescription("Create a new line mesh element between v0 and v1.");
-  cb->setParentClass<MElement>();
-}
diff --git a/Geo/MLine.h b/Geo/MLine.h
index b8b8b63d44..207aaceae6 100644
--- a/Geo/MLine.h
+++ b/Geo/MLine.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -88,7 +88,6 @@ class MLine : public MElement {
     }
   }
   virtual void getIntegrationPoints(int pOrder, int *npts, IntPt **pts);
-  static void registerBindings(binding *b);
 };
 
 /*
@@ -151,7 +150,6 @@ class MLine3 : public MLine {
  *   0---2---...-(N-1)-1
  *
  */
-class binding;
 class MLineN : public MLine {
  protected:
   std::vector<MVertex *> _vs;
diff --git a/Geo/MPoint.h b/Geo/MPoint.h
index c172208798..1d0e201f82 100644
--- a/Geo/MPoint.h
+++ b/Geo/MPoint.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MPrism.cpp b/Geo/MPrism.cpp
index ea385278fb..e87e3948a0 100644
--- a/Geo/MPrism.cpp
+++ b/Geo/MPrism.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -158,33 +158,3 @@ void MPrism::getFaceInfo(const MFace &face, int &ithFace, int &sign, int &rot) c
   }
   Msg::Error("Could not get face information for prism %d", getNum());
 }
-#include "Bindings.h"
-static MPrism18* MPrism18_binding(std::vector<MVertex*> v)
-{
-  return new MPrism18(v);
-}
-
-void MPrism::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<MPrism>("MPrism");
-  cb->setDescription("A mesh first-order prism.");
-  methodBinding *cm;
-  cm = cb->setConstructor<MPrism,MVertex*,MVertex*,MVertex*,MVertex*, MVertex*, MVertex*>();
-  cm->setArgNames("v0", "v1", "v2", "v3","v4","v5", NULL);
-  cm->setDescription("Create a new prism with top triangle (v0,v1,v2) and "
-                     "bottom one (v3,v4,v5).");
-  cm = cb->addMethod("getVolumeSign",&MPrism::getVolumeSign);
-  cm->setDescription("computes the sign of the element volume");
-  cm = cb->addMethod("revert",&MPrism::revert);
-  cm->setDescription("reorganises the element vertices so that volume is positive");
-
-  cb->setParentClass<MElement>();
-
-  cb = b->addClass<MPrism18>("MPrism18");
-  cb->setDescription("A mesh second-order prism.");
-  cm = cb->addMethod("MPrism18",&MPrism18_binding);
-  cm->setArgNames("vectorOfVertices", NULL);
-  cm->setDescription("Create a new prism with vertices in vectorV (length=18).");
-  cb->setParentClass<MPrism>();
-}
-
diff --git a/Geo/MPrism.h b/Geo/MPrism.h
index 7f1d4a8e8a..cd3b22c2f2 100644
--- a/Geo/MPrism.h
+++ b/Geo/MPrism.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -8,7 +8,6 @@
 
 #include "MElement.h"
 
-class binding;
 /*
  * MPrism
  *
@@ -65,11 +64,6 @@ class MPrism : public MElement {
   virtual int getNumVertices() const { return 6; }
   virtual double getInnerRadius();
   virtual MVertex *getVertex(int num){ return _v[num]; }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[6] = {0, 2, 1, 3, 5, 4};
-    return getVertex(map[num]);
-  }
   virtual int getNumEdges(){ return 9; }
   virtual MEdge getEdge(int num)
   {
@@ -213,8 +207,6 @@ class MPrism : public MElement {
     };
     return f[face][vert];
   }
-  public:
-  static void registerBindings(binding *b);
 };
 
 /*
@@ -271,11 +263,6 @@ class MPrism15 : public MPrism {
     static const int map[15] = {0, 1, 2, 3, 4, 5, 6, 9, 7, 8, 10, 11, 12, 14, 13};
     return getVertex(map[num]);
   }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[15] = {0, 2, 1, 3, 5, 4, 7, 9, 6, 13, 14, 12, 8, 11, 10};
-    return getVertex(map[num]);
-  }
   virtual int getNumEdgeVertices() const { return 9; }
   virtual int getNumEdgesRep(){ return 18; }
   virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n)
diff --git a/Geo/MPyramid.cpp b/Geo/MPyramid.cpp
index 032ab2f0da..9f71c9d710 100644
--- a/Geo/MPyramid.cpp
+++ b/Geo/MPyramid.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MPyramid.h b/Geo/MPyramid.h
index bd63e67f45..423352f07e 100644
--- a/Geo/MPyramid.h
+++ b/Geo/MPyramid.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -67,11 +67,6 @@ class MPyramid : public MElement {
   virtual int getDim() const { return 3; }
   virtual int getNumVertices() const { return 5; }
   virtual MVertex *getVertex(int num){ return _v[num]; }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[5] = {0, 3, 2, 1, 4};
-    return getVertex(map[num]);
-  }
   virtual int getNumEdges(){ return 8; }
   virtual MEdge getEdge(int num)
   {
@@ -259,11 +254,6 @@ class MPyramid13 : public MPyramid {
   virtual int getPolynomialOrder() const { return 2; }
   virtual int getNumVertices() const { return 13; }
   virtual MVertex *getVertex(int num){ return num < 5 ? _v[num] : _vs[num - 5]; }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[13] = {0, 3, 2, 1, 4, 6, 10, 8, 5, 7, 12, 11, 9};
-    return getVertex(map[num]);
-  }
   virtual int getNumEdgeVertices() const { return 8; }
   virtual int getNumEdgesRep(){ return 16; }
   virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n)
diff --git a/Geo/MQuadrangle.cpp b/Geo/MQuadrangle.cpp
index ff011fea99..8a41e387bc 100644
--- a/Geo/MQuadrangle.cpp
+++ b/Geo/MQuadrangle.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -345,28 +345,3 @@ double MQuadrangle::getInnerRadius()
   }
   return R;
 }
-#include "Bindings.h"
-
-static MQuadrangle9* MQuadrangle9_binding(std::vector<MVertex*> v) {
-  return new MQuadrangle9(v);
-}
-
-
-void MQuadrangle::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<MQuadrangle>("MQuadrangle");
-  cb->setDescription("A mesh first-order quadrangle.");
-  methodBinding *cm;
-  cm = cb->setConstructor<MQuadrangle,MVertex*,MVertex*,MVertex*,MVertex*>();
-  cm->setArgNames("v0", "v1", "v2", "v3", NULL);
-  cm->setDescription("Create a new quadrangle with vertices (v0,v1,v2,v3).");
-  cb->setParentClass<MElement>();
-
-  cb = b->addClass<MQuadrangle9>("MQuadrangle9");
-  cb->setDescription("A mesh second-order quadrangle.");
-  cm = cb->addMethod("MQuadrangle9",&MQuadrangle9_binding);
-//   cm = cb->setConstructor<MQuadrangle9_binding,std::vector<MVertex*> >();
-  cm->setArgNames("vectorOfVertices", NULL);
-  cm->setDescription("Create a new quadrangle with vertices in vectorV (length=9).");
-  cb->setParentClass<MQuadrangle>();
-}
diff --git a/Geo/MQuadrangle.h b/Geo/MQuadrangle.h
index adb67da138..28c2fa5cb1 100644
--- a/Geo/MQuadrangle.h
+++ b/Geo/MQuadrangle.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -23,7 +23,6 @@
  *   0-----------1
  *
  */
-class binding;
 class MQuadrangle : public MElement {
  protected:
   MVertex *_v[4];
@@ -57,11 +56,6 @@ void projectInMeanPlane(double *xn, double *yn);
   virtual int getNumVertices() const { return 4; }
   virtual MVertex *getVertex(int num){ return _v[num]; }
   virtual void setVertex(int num, MVertex *v){_v[num]=v;}
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[4] = {0, 3, 2, 1};
-    return getVertex(map[num]);
-  }
   virtual MVertex *getVertexDIFF(int num)
   {
     static const int map[4] = {0, 1, 3, 2};
@@ -165,9 +159,6 @@ void projectInMeanPlane(double *xn, double *yn);
     };
     return e[edge][vert];
   }
-
- public:
-  static void registerBindings(binding *b);
 };
 
 /*
@@ -208,11 +199,6 @@ class MQuadrangle8 : public MQuadrangle {
     static const int map[8] = {0, 4, 1, 5, 2, 6, 3, 7};
     return getVertex(map[num]);
   }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[8] = {0, 3, 2, 1, 7, 6, 5, 4};
-    return getVertex(map[num]);
-  }
   virtual MVertex *getVertexDIFF(int num)
   {
     static const int map[8] = {0, 1, 3, 2, 4, 7, 5, 6};
diff --git a/Geo/MTetrahedron.cpp b/Geo/MTetrahedron.cpp
index c25f871522..9b4efb8d83 100644
--- a/Geo/MTetrahedron.cpp
+++ b/Geo/MTetrahedron.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MTetrahedron.h b/Geo/MTetrahedron.h
index 599e44163b..6d4b761bed 100644
--- a/Geo/MTetrahedron.h
+++ b/Geo/MTetrahedron.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -60,11 +60,6 @@ class MTetrahedron : public MElement {
   virtual int getDim() const { return 3; }
   virtual int getNumVertices() const { return 4; }
   virtual MVertex *getVertex(int num){ return _v[num]; }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[4] = {0, 2, 1, 3};
-    return getVertex(map[num]);
-  }
   virtual int getNumEdges(){ return 6; }
   virtual MEdge getEdge(int num)
   {
@@ -228,11 +223,6 @@ class MTetrahedron10 : public MTetrahedron {
     static const int map[10] = {0, 1, 2, 3, 4, 5, 6, 7, 9, 8};
     return getVertex(map[num]);
   }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[10] = {0, 2, 1, 3, 6, 5, 4, 7, 8, 9};
-    return getVertex(map[num]);
-  }
   virtual MVertex *getVertexDIFF(int num)
   {
     static const int map[10] = {0, 1, 2, 3, 4, 5, 6, 7, 9, 8};
diff --git a/Geo/MTriangle.cpp b/Geo/MTriangle.cpp
index 7555c2b259..c1633e3ae6 100644
--- a/Geo/MTriangle.cpp
+++ b/Geo/MTriangle.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -320,32 +320,3 @@ void MTriangle::getIntegrationPoints(int pOrder, int *npts, IntPt **pts)
   *npts = getNGQTPts(pOrder);
   *pts = getGQTPts(pOrder);
 }
-#include "Bindings.h"
-static MTriangle6* MTriangle6_binding(std::vector<MVertex*> v) {
-  return new MTriangle6(v);
-}
-
-void MTriangle::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<MTriangle>("MTriangle");
-  cb->setDescription("A mesh first-order triangle.");
-  methodBinding *cm;
-  cm = cb->setConstructor<MTriangle,MVertex*,MVertex*,MVertex*>();
-  cm->setArgNames("v0", "v1", "v2", NULL);
-  cm->setDescription("Create a new triangle with vertices (v0,v1,v2).");
-  cb->setParentClass<MElement>();
-
-  cb = b->addClass<MTriangle6>("MTriangle6");
-  cb->setDescription("A mesh second-order triangle.");
-  cm = cb->addMethod("MTriangle6",&MTriangle6_binding);
-  cm->setArgNames("vectorOfVertices", NULL);
-  cm->setDescription("Create a new triangle with vertices given in the vector (length = 6).");
-  cb->setParentClass<MTriangle>();
-
-/*  cb->setDescription("A mesh second-order triangle.");
-  cm = cb->setConstructor<MTriangle6_binding,std::vector<MVertex*> >();
-  cm->setArgNames("vectorOfVertices", NULL);
-  cm->setDescription("Create a new triangle with vertices given in the vector (length = 6).");
-  cb->setParentClass<MTriangle>();*/
-}
-
diff --git a/Geo/MTriangle.h b/Geo/MTriangle.h
index 4dc273298a..0e64bb3e27 100644
--- a/Geo/MTriangle.h
+++ b/Geo/MTriangle.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -58,11 +58,6 @@ class MTriangle : public MElement {
   virtual double angleShapeMeasure();
   virtual int getNumVertices() const { return 3; }
   virtual MVertex *getVertex(int num){ return _v[num]; }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[3] = {0, 2, 1};
-    return getVertex(map[num]);
-  }
   virtual void xyz2uvw(double xyz[3], double uvw[3]);
   virtual MVertex *getOtherVertex(MVertex *v1, MVertex *v2)
   {
@@ -159,8 +154,6 @@ class MTriangle : public MElement {
     };
     return e[edge][vert];
   }
-  public:
-  static void registerBindings(binding *b);
 };
 
 /*
@@ -201,11 +194,6 @@ class MTriangle6 : public MTriangle {
     static const int map[6] = {0, 3, 1, 4, 2, 5};
     return getVertex(map[num]);
   }
-  virtual MVertex *getVertexMED(int num)
-  {
-    static const int map[6] = {0, 2, 1, 5, 4, 3};
-    return getVertex(map[num]);
-  }
   virtual int getNumEdgeVertices() const { return 3; }
   virtual int getNumEdgesRep();
   virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n);
diff --git a/Geo/MVertex.cpp b/Geo/MVertex.cpp
index 38727d72aa..303f65f460 100644
--- a/Geo/MVertex.cpp
+++ b/Geo/MVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -418,34 +418,3 @@ bool reparamMeshVertexOnEdge(const MVertex *v, const GEdge *ge, double &param)
   if(param < 1.e6) return true;
   return false;
 }
-
-#include "Bindings.h"
-
-void MVertex::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<MVertex>("MVertex");
-  cb->setDescription("A mesh vertex.");
-  methodBinding *cm;
-  cm = cb->addMethod("getNum",&MVertex::getNum);
-  cm->setDescription("Return the immutable vertex number.");
-  //the cast is epxlicitely given because there are 2 MVertex::x function
-  cm = cb->addMethod("x", (double (MVertex::*)() const) &MVertex::x);
-  cm->setDescription("Return the x-coordinate.");
-  cm = cb->addMethod("y", (double (MVertex::*)() const) &MVertex::y);
-  cm->setDescription("Return the y-coordinate.");
-  cm = cb->addMethod("z", (double (MVertex::*)() const) &MVertex::z);
-  cm->setDescription("Return the z-coordinate.");
-  cm = cb->addMethod("setXYZ", &MVertex::setXYZ);
-  cm->setDescription("set the coordinates");
-  cm->setArgNames("x", "y", "z",NULL);
-  cm = cb->setConstructor<MVertex,double,double,double>();
-  cm->setArgNames("x", "y", "z", NULL);
-  cm->setDescription("Create a new mesh vertex at (x,y,z).");
-  cm = cb->addMethod("getNum", &MVertex::getNum);
-  cm->setDescription("return the invariant vertex id");
-  cm = cb->addMethod("getPolynomialOrder", &MVertex::getPolynomialOrder);
-  cm->setDescription("return the polynomial order of vertex");
-  cm = cb->addMethod("setPolynomialOrder", &MVertex::setPolynomialOrder);
-  cm->setDescription("assign the polynomial order of vertex");
-  cm->setArgNames("order",NULL);
-}
diff --git a/Geo/MVertex.h b/Geo/MVertex.h
index 02f9c86c70..6d421d8f5b 100644
--- a/Geo/MVertex.h
+++ b/Geo/MVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -15,7 +15,6 @@ class GEntity;
 class GEdge;
 class GFace;
 class MVertex;
-class binding;
 
 class MVertexLessThanLexicographic{
  public:
@@ -72,10 +71,9 @@ class MVertex{
   inline double & x() { return _x; }
   inline double & y() { return _y; }
   inline double & z() { return _z; }
-  // cannot use the reference to set the value in the bindings
-  inline void setXYZ(double x, double y, double z) { _x = x; _y = y; _z = z; }
 
   inline SPoint3 point() const { return SPoint3(_x, _y, _z); }
+  inline void setXYZ(double x, double y, double z) { _x = x; _y = y; _z = z; }
 
   // get/set the parent entity
   inline GEntity* onWhat() const { return _ge; }
@@ -119,7 +117,6 @@ class MVertex{
   void writeMESH(FILE *fp, double scalingFactor=1.0);
   void writeBDF(FILE *fp, int format=0, double scalingFactor=1.0);
   void writeDIFF(FILE *fp, bool binary, double scalingFactor=1.0);
-  static void registerBindings(binding *b);
 };
 
 class MEdgeVertex : public MVertex{
diff --git a/Geo/MVertexPositionSet.h b/Geo/MVertexPositionSet.h
index a0c7c7a25b..03e1f5eb77 100644
--- a/Geo/MVertexPositionSet.h
+++ b/Geo/MVertexPositionSet.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MZone.cpp b/Geo/MZone.cpp
index 39d1800f0d..568598b74b 100644
--- a/Geo/MZone.cpp
+++ b/Geo/MZone.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MZone.h b/Geo/MZone.h
index 0b3dffb906..6afd64888d 100644
--- a/Geo/MZone.h
+++ b/Geo/MZone.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MZoneBoundary.cpp b/Geo/MZoneBoundary.cpp
index 0e66c86c95..5fe6ab2f85 100644
--- a/Geo/MZoneBoundary.cpp
+++ b/Geo/MZoneBoundary.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/MZoneBoundary.h b/Geo/MZoneBoundary.h
index 04cc2d6ff7..792abfc204 100644
--- a/Geo/MZoneBoundary.h
+++ b/Geo/MZoneBoundary.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCEdge.cpp b/Geo/OCCEdge.cpp
index 142413f49f..e249be3b33 100644
--- a/Geo/OCCEdge.cpp
+++ b/Geo/OCCEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCEdge.h b/Geo/OCCEdge.h
index a521b3f2e3..a555434d41 100644
--- a/Geo/OCCEdge.h
+++ b/Geo/OCCEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCFace.cpp b/Geo/OCCFace.cpp
index 73320e06b5..858d26d433 100644
--- a/Geo/OCCFace.cpp
+++ b/Geo/OCCFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCFace.h b/Geo/OCCFace.h
index 7eed8c4ae2..9fa9ffbe8f 100644
--- a/Geo/OCCFace.h
+++ b/Geo/OCCFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCIncludes.h b/Geo/OCCIncludes.h
index e6f54ff398..8bd84f9984 100644
--- a/Geo/OCCIncludes.h
+++ b/Geo/OCCIncludes.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCRegion.cpp b/Geo/OCCRegion.cpp
index 5a1dff017d..fb215bba80 100644
--- a/Geo/OCCRegion.cpp
+++ b/Geo/OCCRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCRegion.h b/Geo/OCCRegion.h
index 60cdac47e9..8be01f5eef 100644
--- a/Geo/OCCRegion.h
+++ b/Geo/OCCRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCVertex.cpp b/Geo/OCCVertex.cpp
index 8c85e9e5f2..ba532f2983 100644
--- a/Geo/OCCVertex.cpp
+++ b/Geo/OCCVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCCVertex.h b/Geo/OCCVertex.h
index 74bb2a6b7f..1ff76ef359 100644
--- a/Geo/OCCVertex.h
+++ b/Geo/OCCVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCC_Connect.cpp b/Geo/OCC_Connect.cpp
index fad10a090b..6e03b9fcdc 100644
--- a/Geo/OCC_Connect.cpp
+++ b/Geo/OCC_Connect.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/OCC_Connect.h b/Geo/OCC_Connect.h
index b6b4483abd..1843f20e32 100644
--- a/Geo/OCC_Connect.h
+++ b/Geo/OCC_Connect.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Pair.h b/Geo/Pair.h
index 6a56f0d74e..14cad4fd5c 100644
--- a/Geo/Pair.h
+++ b/Geo/Pair.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/Range.h b/Geo/Range.h
index ea6d6f9454..3888a0ed13 100644
--- a/Geo/Range.h
+++ b/Geo/Range.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SBoundingBox3d.h b/Geo/SBoundingBox3d.h
index fb29fd682b..3d7a01bd6a 100644
--- a/Geo/SBoundingBox3d.h
+++ b/Geo/SBoundingBox3d.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SOrientedBoundingBox.cpp b/Geo/SOrientedBoundingBox.cpp
index 73a267f984..0dbb755ee3 100644
--- a/Geo/SOrientedBoundingBox.cpp
+++ b/Geo/SOrientedBoundingBox.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SOrientedBoundingBox.h b/Geo/SOrientedBoundingBox.h
index db69a2fd45..7b5f49c027 100644
--- a/Geo/SOrientedBoundingBox.h
+++ b/Geo/SOrientedBoundingBox.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SPoint2.h b/Geo/SPoint2.h
index d1fcc622ee..0eeae33068 100644
--- a/Geo/SPoint2.h
+++ b/Geo/SPoint2.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SPoint3.h b/Geo/SPoint3.h
index b48c4f417d..3e37e5cedf 100644
--- a/Geo/SPoint3.h
+++ b/Geo/SPoint3.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/STensor3.h b/Geo/STensor3.h
index c7ddeab713..b554a7edcb 100644
--- a/Geo/STensor3.h
+++ b/Geo/STensor3.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/SVector3.h b/Geo/SVector3.h
index 16b72faf3f..1082d1499e 100644
--- a/Geo/SVector3.h
+++ b/Geo/SVector3.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteEdge.cpp b/Geo/discreteEdge.cpp
index 3a6c1cc85c..d9e5bf8ea7 100644
--- a/Geo/discreteEdge.cpp
+++ b/Geo/discreteEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteEdge.h b/Geo/discreteEdge.h
index 29671932c1..cbedfeb592 100644
--- a/Geo/discreteEdge.h
+++ b/Geo/discreteEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteFace.cpp b/Geo/discreteFace.cpp
index e96d3f3897..adcf923389 100644
--- a/Geo/discreteFace.cpp
+++ b/Geo/discreteFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteFace.h b/Geo/discreteFace.h
index 7fe86e3c12..446bdbfd10 100644
--- a/Geo/discreteFace.h
+++ b/Geo/discreteFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteRegion.cpp b/Geo/discreteRegion.cpp
index 70eea83c51..0e1c80bee0 100644
--- a/Geo/discreteRegion.cpp
+++ b/Geo/discreteRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteRegion.h b/Geo/discreteRegion.h
index 250f61154d..e609010080 100644
--- a/Geo/discreteRegion.h
+++ b/Geo/discreteRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/discreteVertex.h b/Geo/discreteVertex.h
index 344c26c416..c87620a931 100644
--- a/Geo/discreteVertex.h
+++ b/Geo/discreteVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/findLinks.cpp b/Geo/findLinks.cpp
index 549e0efec4..1ecec5b88d 100644
--- a/Geo/findLinks.cpp
+++ b/Geo/findLinks.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/findLinks.h b/Geo/findLinks.h
index bab963cfef..28ed0bc4c7 100644
--- a/Geo/findLinks.h
+++ b/Geo/findLinks.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierEdge.cpp b/Geo/fourierEdge.cpp
index ef6dd27c15..7326f11f1e 100644
--- a/Geo/fourierEdge.cpp
+++ b/Geo/fourierEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierEdge.h b/Geo/fourierEdge.h
index e551c5157c..07866425f7 100644
--- a/Geo/fourierEdge.h
+++ b/Geo/fourierEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierFace.cpp b/Geo/fourierFace.cpp
index 569f600bcc..a9076dedeb 100644
--- a/Geo/fourierFace.cpp
+++ b/Geo/fourierFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierFace.h b/Geo/fourierFace.h
index 06bdd29f23..a7053fa1be 100644
--- a/Geo/fourierFace.h
+++ b/Geo/fourierFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierProjectionFace.cpp b/Geo/fourierProjectionFace.cpp
index 20cdb7c114..22730a1b80 100644
--- a/Geo/fourierProjectionFace.cpp
+++ b/Geo/fourierProjectionFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierProjectionFace.h b/Geo/fourierProjectionFace.h
index 5987a7428b..c0ad5f721c 100644
--- a/Geo/fourierProjectionFace.h
+++ b/Geo/fourierProjectionFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/fourierVertex.h b/Geo/fourierVertex.h
index 567ea964c3..275e34125e 100644
--- a/Geo/fourierVertex.h
+++ b/Geo/fourierVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshEdge.cpp b/Geo/gmshEdge.cpp
index 413c820c7c..8dd2294907 100644
--- a/Geo/gmshEdge.cpp
+++ b/Geo/gmshEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshEdge.h b/Geo/gmshEdge.h
index 2915188a28..d16d3f0377 100644
--- a/Geo/gmshEdge.h
+++ b/Geo/gmshEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshFace.cpp b/Geo/gmshFace.cpp
index 1f47b024e2..caca1f867e 100644
--- a/Geo/gmshFace.cpp
+++ b/Geo/gmshFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshFace.h b/Geo/gmshFace.h
index fa229909c9..a0d1666c3c 100644
--- a/Geo/gmshFace.h
+++ b/Geo/gmshFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshLevelset.h b/Geo/gmshLevelset.h
index 96c71e39b6..ef551fdd06 100644
--- a/Geo/gmshLevelset.h
+++ b/Geo/gmshLevelset.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshRegion.cpp b/Geo/gmshRegion.cpp
index 5ff7c218fd..784ca7be47 100644
--- a/Geo/gmshRegion.cpp
+++ b/Geo/gmshRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshRegion.h b/Geo/gmshRegion.h
index c851ef890d..1f44f86599 100644
--- a/Geo/gmshRegion.h
+++ b/Geo/gmshRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshSurface.cpp b/Geo/gmshSurface.cpp
index 489127f60f..cab602fa01 100644
--- a/Geo/gmshSurface.cpp
+++ b/Geo/gmshSurface.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshSurface.h b/Geo/gmshSurface.h
index 05cefbdc43..5005098ba8 100644
--- a/Geo/gmshSurface.h
+++ b/Geo/gmshSurface.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshVertex.cpp b/Geo/gmshVertex.cpp
index 4d724ef422..c37d775fd8 100644
--- a/Geo/gmshVertex.cpp
+++ b/Geo/gmshVertex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/gmshVertex.h b/Geo/gmshVertex.h
index 3a835cbaee..27697fbf60 100644
--- a/Geo/gmshVertex.h
+++ b/Geo/gmshVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/partitionEdge.h b/Geo/partitionEdge.h
index 8888e6aa0c..e095308107 100644
--- a/Geo/partitionEdge.h
+++ b/Geo/partitionEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/partitionFace.h b/Geo/partitionFace.h
index d2971b0a2c..5d339848e9 100644
--- a/Geo/partitionFace.h
+++ b/Geo/partitionFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Geo/partitionVertex.h b/Geo/partitionVertex.h
index 7336affb25..1fcb5410d8 100644
--- a/Geo/partitionVertex.h
+++ b/Geo/partitionVertex.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/CMakeLists.txt b/Graphics/CMakeLists.txt
index ad73469ee6..1b143a3ae3 100644
--- a/Graphics/CMakeLists.txt
+++ b/Graphics/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/Camera.cpp b/Graphics/Camera.cpp
index fdd2cb0b2c..a7fa57822a 100644
--- a/Graphics/Camera.cpp
+++ b/Graphics/Camera.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/Camera.h b/Graphics/Camera.h
index 019c9a82cb..090377f0f7 100644
--- a/Graphics/Camera.h
+++ b/Graphics/Camera.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/PixelBuffer.h b/Graphics/PixelBuffer.h
index 14e3d8b188..c07eba7f3d 100644
--- a/Graphics/PixelBuffer.h
+++ b/Graphics/PixelBuffer.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/ReadImg.cpp b/Graphics/ReadImg.cpp
index 8cb747cd51..b0279485ac 100644
--- a/Graphics/ReadImg.cpp
+++ b/Graphics/ReadImg.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/ReadImg.h b/Graphics/ReadImg.h
index 016c6253ed..e01f1f7896 100644
--- a/Graphics/ReadImg.h
+++ b/Graphics/ReadImg.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawAxes.cpp b/Graphics/drawAxes.cpp
index 9e2ff6d51a..21b5e6fa92 100644
--- a/Graphics/drawAxes.cpp
+++ b/Graphics/drawAxes.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawContext.cpp b/Graphics/drawContext.cpp
index 19fadad621..a4dd4ec4e1 100644
--- a/Graphics/drawContext.cpp
+++ b/Graphics/drawContext.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -281,7 +281,6 @@ void drawContext::draw3d()
   drawGeom();
   drawMesh();
   drawPost();
-
 }
 
 void drawContext::draw2d()
diff --git a/Graphics/drawContext.h b/Graphics/drawContext.h
index 036d5729d9..ced0b66e42 100644
--- a/Graphics/drawContext.h
+++ b/Graphics/drawContext.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawGeom.cpp b/Graphics/drawGeom.cpp
index c7c23e5e66..b6269dad7d 100644
--- a/Graphics/drawGeom.cpp
+++ b/Graphics/drawGeom.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawGlyph.cpp b/Graphics/drawGlyph.cpp
index 5c49bfc4da..8bbb704815 100644
--- a/Graphics/drawGlyph.cpp
+++ b/Graphics/drawGlyph.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawGraph2d.cpp b/Graphics/drawGraph2d.cpp
index 5a44adc7c7..b840e52b80 100644
--- a/Graphics/drawGraph2d.cpp
+++ b/Graphics/drawGraph2d.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawMesh.cpp b/Graphics/drawMesh.cpp
index 3221dc7f10..ed7ba3bf2a 100644
--- a/Graphics/drawMesh.cpp
+++ b/Graphics/drawMesh.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/drawPost.cpp b/Graphics/drawPost.cpp
index 19495155a0..36647df5ca 100644
--- a/Graphics/drawPost.cpp
+++ b/Graphics/drawPost.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -398,6 +398,19 @@ class drawPView {
       glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
     else
       glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE);
+
+    if(opt->axes && opt->type == PViewOptions::Plot3D){
+      glColor4ubv((GLubyte *) & opt->color.axes);
+      glLineWidth((float)CTX::instance()->lineWidth);
+      gl2psLineWidth((float)(CTX::instance()->lineWidth * 
+                             CTX::instance()->print.epsLineWidthFactor));
+      if(!opt->axesAutoPosition)
+        _ctx->drawAxes(opt->axes, opt->axesTics, opt->axesFormat, opt->axesLabel,
+                       opt->axesPosition, opt->axesMikado);
+      else if(!opt->tmpBBox.empty())
+        _ctx->drawAxes(opt->axes, opt->axesTics, opt->axesFormat, opt->axesLabel,
+                       opt->tmpBBox, opt->axesMikado);
+    }
     
     if(!CTX::instance()->clipWholeElements){
       for(int i = 0; i < 6; i++)
@@ -477,20 +490,6 @@ class drawPView {
 
     for(int i = 0; i < 6; i++)
       glDisable((GLenum)(GL_CLIP_PLANE0 + i));
-
-    if(opt->axes && opt->type == PViewOptions::Plot3D){
-      glColor4ubv((GLubyte *) & opt->color.axes);
-      glLineWidth((float)CTX::instance()->lineWidth);
-      gl2psLineWidth((float)(CTX::instance()->lineWidth * 
-                             CTX::instance()->print.epsLineWidthFactor));
-      if(!opt->axesAutoPosition)
-        _ctx->drawAxes(opt->axes, opt->axesTics, opt->axesFormat, opt->axesLabel,
-                       opt->axesPosition, opt->axesMikado);
-      else if(!opt->tmpBBox.empty())
-        _ctx->drawAxes(opt->axes, opt->axesTics, opt->axesFormat, opt->axesLabel,
-                       opt->tmpBBox, opt->axesMikado);
-    }
-    
   }
 };
 
diff --git a/Graphics/drawScales.cpp b/Graphics/drawScales.cpp
index a3e70592c9..838a26e826 100644
--- a/Graphics/drawScales.cpp
+++ b/Graphics/drawScales.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2gif.cpp b/Graphics/gl2gif.cpp
index 5ac0711ae4..7b870f6445 100644
--- a/Graphics/gl2gif.cpp
+++ b/Graphics/gl2gif.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2gif.h b/Graphics/gl2gif.h
index 8cfc0d87ad..923991dbc6 100644
--- a/Graphics/gl2gif.h
+++ b/Graphics/gl2gif.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2jpeg.cpp b/Graphics/gl2jpeg.cpp
index 59af5e09fe..aabe4c661d 100644
--- a/Graphics/gl2jpeg.cpp
+++ b/Graphics/gl2jpeg.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2jpeg.h b/Graphics/gl2jpeg.h
index 67988928e7..b25a7a050f 100644
--- a/Graphics/gl2jpeg.h
+++ b/Graphics/gl2jpeg.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2png.cpp b/Graphics/gl2png.cpp
index b53424be9e..86dde122d2 100644
--- a/Graphics/gl2png.cpp
+++ b/Graphics/gl2png.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -56,8 +56,7 @@ void create_png(FILE *file, PixelBuffer *buffer, int quality)
   int width = buffer->getWidth();
   int numcomp = buffer->getNumComp();
 
-  // Z_DEFAULT_COMPRESSION, Z_BEST_SPEED, Z_BEST_COMPRESSION, Z_NO_COMPRESSION
-  png_set_compression_level(png_ptr, Z_DEFAULT_COMPRESSION);
+  //png_set_compression_level(png_ptr, 5);
   png_set_IHDR(png_ptr, info_ptr, width, height, 8, 
                (numcomp == 3) ? PNG_COLOR_TYPE_RGB : PNG_COLOR_TYPE_RGBA,
                PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
diff --git a/Graphics/gl2png.h b/Graphics/gl2png.h
index c3de6531dc..1fb7c89010 100644
--- a/Graphics/gl2png.h
+++ b/Graphics/gl2png.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2ppm.cpp b/Graphics/gl2ppm.cpp
index 472cbaf675..aba19592c0 100644
--- a/Graphics/gl2ppm.cpp
+++ b/Graphics/gl2ppm.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2ppm.h b/Graphics/gl2ppm.h
index b63c34e757..3d30c986cb 100644
--- a/Graphics/gl2ppm.h
+++ b/Graphics/gl2ppm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2yuv.cpp b/Graphics/gl2yuv.cpp
index 7c64699cad..568937800c 100644
--- a/Graphics/gl2yuv.cpp
+++ b/Graphics/gl2yuv.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Graphics/gl2yuv.h b/Graphics/gl2yuv.h
index 07d22f8104..07fe09510c 100644
--- a/Graphics/gl2yuv.h
+++ b/Graphics/gl2yuv.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BDS.cpp b/Mesh/BDS.cpp
index d25cb34423..11cf3c3718 100644
--- a/Mesh/BDS.cpp
+++ b/Mesh/BDS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BDS.h b/Mesh/BDS.h
index 4542f69c1f..d6b479c401 100644
--- a/Mesh/BDS.h
+++ b/Mesh/BDS.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BackgroundMesh.cpp b/Mesh/BackgroundMesh.cpp
index e05c8bcdc2..eb2544dfdb 100644
--- a/Mesh/BackgroundMesh.cpp
+++ b/Mesh/BackgroundMesh.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BackgroundMesh.h b/Mesh/BackgroundMesh.h
index 91f155181a..8477fbaf31 100644
--- a/Mesh/BackgroundMesh.h
+++ b/Mesh/BackgroundMesh.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BoundaryLayers.cpp b/Mesh/BoundaryLayers.cpp
index 05b58eeb66..3c5e6dfdf9 100644
--- a/Mesh/BoundaryLayers.cpp
+++ b/Mesh/BoundaryLayers.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/BoundaryLayers.h b/Mesh/BoundaryLayers.h
index 8cbb592734..521c0355a4 100644
--- a/Mesh/BoundaryLayers.h
+++ b/Mesh/BoundaryLayers.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/CMakeLists.txt b/Mesh/CMakeLists.txt
index 9c1fe2771b..07ef9fcd35 100644
--- a/Mesh/CMakeLists.txt
+++ b/Mesh/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Field.cpp b/Mesh/Field.cpp
index 6888cc6a3f..56e0dc49d9 100644
--- a/Mesh/Field.cpp
+++ b/Mesh/Field.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Field.h b/Mesh/Field.h
index 6b11213e77..fdb070d201 100644
--- a/Mesh/Field.h
+++ b/Mesh/Field.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp
index 634023b92a..293861cb3f 100644
--- a/Mesh/Generator.cpp
+++ b/Mesh/Generator.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -93,17 +93,17 @@ static void buildASetOfEquivalentMeshVertices(GFace *gf,
   }
 }
 
-struct geomTresholdVertexEquivalence 
+struct geomThresholdVertexEquivalence 
 {
   // Initial MVertex associated to one given MVertex
   std::map<GVertex*, MVertex*> backward_map;
   // initiate the forward and backward maps
-  geomTresholdVertexEquivalence(GModel *g);  
+  geomThresholdVertexEquivalence(GModel *g);  
   // restores the initial state
-  ~geomTresholdVertexEquivalence ();
+  ~geomThresholdVertexEquivalence ();
 };
 
-geomTresholdVertexEquivalence::geomTresholdVertexEquivalence(GModel *g)
+geomThresholdVertexEquivalence::geomThresholdVertexEquivalence(GModel *g)
 {
   std::multimap<MVertex*, MVertex*> equivalenceMap;
   for (GModel::fiter it = g->firstFace(); it != g->lastFace(); ++it)
@@ -147,7 +147,7 @@ geomTresholdVertexEquivalence::geomTresholdVertexEquivalence(GModel *g)
   }
 }
 
-geomTresholdVertexEquivalence::~geomTresholdVertexEquivalence()
+geomThresholdVertexEquivalence::~geomThresholdVertexEquivalence()
 {
   // restore the initial data
   for (std::map<GVertex*, MVertex*>::iterator it = backward_map.begin();
@@ -433,7 +433,7 @@ static void Mesh2D(GModel *m)
     (*it)->meshStatistics.status = GFace::PENDING;
 
   // skip short mesh edges
-  //geomTresholdVertexEquivalence inst(m);
+  //geomThresholdVertexEquivalence inst(m);
 
   // boundary layers are special: their generation (including vertices
   // and curve meshes) is global as it depends on a smooth normal
diff --git a/Mesh/Generator.h b/Mesh/Generator.h
index 40f808322d..0f0faceacf 100644
--- a/Mesh/Generator.h
+++ b/Mesh/Generator.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/HighOrder.cpp b/Mesh/HighOrder.cpp
index 9d75f9192e..b34adb5348 100644
--- a/Mesh/HighOrder.cpp
+++ b/Mesh/HighOrder.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -275,7 +275,7 @@ static void getEdgeVertices(GEdge *ge, MElement *ele, std::vector<MVertex*> &ve,
         MVertex *v;
         if(linear || !reparamOK || uc < u0 || uc > u1){ 
           Msg::Warning("We don't have a valid parameter on curve %d-%d",
-             v0->getNum(), v1->getNum());
+                       v0->getNum(), v1->getNum());
           // we don't have a (valid) parameter on the curve
           SPoint3 pc = edge.interpolate(t);
           v = new MVertex(pc.x(), pc.y(), pc.z(), ge);
diff --git a/Mesh/HighOrder.h b/Mesh/HighOrder.h
index c0d073c95c..8a65fc0600 100644
--- a/Mesh/HighOrder.h
+++ b/Mesh/HighOrder.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/highOrderSmoother.cpp b/Mesh/highOrderSmoother.cpp
index 9af6846951..6992b2f64b 100644
--- a/Mesh/highOrderSmoother.cpp
+++ b/Mesh/highOrderSmoother.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/highOrderSmoother.h b/Mesh/highOrderSmoother.h
index 26a684cc08..ef1303ef89 100644
--- a/Mesh/highOrderSmoother.h
+++ b/Mesh/highOrderSmoother.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGEdge.cpp b/Mesh/meshGEdge.cpp
index 0d6f918420..63b1a5156e 100644
--- a/Mesh/meshGEdge.cpp
+++ b/Mesh/meshGEdge.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGEdge.h b/Mesh/meshGEdge.h
index 36082ab4e3..f18f3da04c 100644
--- a/Mesh/meshGEdge.h
+++ b/Mesh/meshGEdge.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGEdgeExtruded.cpp b/Mesh/meshGEdgeExtruded.cpp
index 95a55f7e7c..3348c8110d 100644
--- a/Mesh/meshGEdgeExtruded.cpp
+++ b/Mesh/meshGEdgeExtruded.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp
index f4226d1ab0..2fff56356f 100644
--- a/Mesh/meshGFace.cpp
+++ b/Mesh/meshGFace.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -450,9 +450,9 @@ static bool meshGenerator(GFace *gf, int RECUR_ITER,
     ++itvx;
   }
  
-  // add _additional_vertices 
-  all_vertices.insert(gf->_additional_vertices.begin(),
-                      gf->_additional_vertices.end());
+  // add additional vertices 
+  all_vertices.insert(gf->additionalVertices.begin(),
+                      gf->additionalVertices.end());
 
 
   if(all_vertices.size() < 3){
@@ -918,9 +918,9 @@ static bool meshGenerator(GFace *gf, int RECUR_ITER,
                        gf->meshStatistics.nbGoodQuality);
 
   gf->mesh_vertices.insert(gf->mesh_vertices.end(),
-			      gf->_additional_vertices.begin(),
-			      gf->_additional_vertices.end());
-  gf->_additional_vertices.clear();
+			      gf->additionalVertices.begin(),
+			      gf->additionalVertices.end());
+  gf->additionalVertices.clear();
 
   return true;
 }
diff --git a/Mesh/meshGFace.h b/Mesh/meshGFace.h
index 3ea931e09a..e2c870cb33 100644
--- a/Mesh/meshGFace.h
+++ b/Mesh/meshGFace.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceBDS.cpp b/Mesh/meshGFaceBDS.cpp
index 17b081036f..7478cde514 100644
--- a/Mesh/meshGFaceBDS.cpp
+++ b/Mesh/meshGFaceBDS.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceBDS.h b/Mesh/meshGFaceBDS.h
index ae55a24e60..60cd73f267 100644
--- a/Mesh/meshGFaceBDS.h
+++ b/Mesh/meshGFaceBDS.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceBamg.cpp b/Mesh/meshGFaceBamg.cpp
index 3aa1366f07..c2c84d6180 100644
--- a/Mesh/meshGFaceBamg.cpp
+++ b/Mesh/meshGFaceBamg.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceBamg.h b/Mesh/meshGFaceBamg.h
index 0a90874e98..2bff95afe2 100644
--- a/Mesh/meshGFaceBamg.h
+++ b/Mesh/meshGFaceBamg.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceDelaunayInsertion.cpp b/Mesh/meshGFaceDelaunayInsertion.cpp
index 6c8bec0890..eb635f6c31 100644
--- a/Mesh/meshGFaceDelaunayInsertion.cpp
+++ b/Mesh/meshGFaceDelaunayInsertion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceDelaunayInsertion.h b/Mesh/meshGFaceDelaunayInsertion.h
index 76731921a2..da5af89261 100644
--- a/Mesh/meshGFaceDelaunayInsertion.h
+++ b/Mesh/meshGFaceDelaunayInsertion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceExtruded.cpp b/Mesh/meshGFaceExtruded.cpp
index 54c1c419b9..20f303178b 100644
--- a/Mesh/meshGFaceExtruded.cpp
+++ b/Mesh/meshGFaceExtruded.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceLloyd.cpp b/Mesh/meshGFaceLloyd.cpp
index adacce0b57..0ac384c687 100644
--- a/Mesh/meshGFaceLloyd.cpp
+++ b/Mesh/meshGFaceLloyd.cpp
@@ -218,14 +218,14 @@ void lloydAlgorithm::operator () (GFace *gf)
   deMeshGFace killer;
   killer(gf);
   
-  gf->_additional_vertices = mesh_vertices;
+  gf->additionalVertices = mesh_vertices;
   Msg::Info("Lloyd remeshing of face %d ", gf->tag());
   meshGFace mesher;
   mesher(gf);
   gf->mesh_vertices.insert(gf->mesh_vertices.begin(),
-                           gf->_additional_vertices.begin(),  
-                           gf->_additional_vertices.end());  
-  gf->_additional_vertices.clear();  
+                           gf->additionalVertices.begin(),  
+                           gf->additionalVertices.end());  
+  gf->additionalVertices.clear();  
 }
 
 double lloydAlgorithm::optimize(int max,int flag){
diff --git a/Mesh/meshGFaceLloyd.h b/Mesh/meshGFaceLloyd.h
index b40bc46a9e..cc79af379e 100644
--- a/Mesh/meshGFaceLloyd.h
+++ b/Mesh/meshGFaceLloyd.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceOptimize.cpp b/Mesh/meshGFaceOptimize.cpp
index abf7b9439f..bf064ae572 100644
--- a/Mesh/meshGFaceOptimize.cpp
+++ b/Mesh/meshGFaceOptimize.cpp
@@ -1,8 +1,9 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
 
+#include "GmshConfig.h"
 #include "meshGFaceOptimize.h"
 #include "qualityMeasures.h"
 #include "GFace.h"
@@ -2069,10 +2070,6 @@ void recombineIntoQuadsIterative(GFace *gf)
   }
 }
 
-
-
-#include "Bindings.h"
-
 double Temporary::w1,Temporary::w2,Temporary::w3;
 std::vector<SVector3> Temporary::gradients;
 
@@ -2178,7 +2175,8 @@ double Temporary::compute_alignment(const MEdge&_edge, MElement*element1, MEleme
   return alignment;
 }
 
-void Temporary::read_data(std::string file_name){
+void Temporary::read_data(std::string file_name)
+{
   int i,j,number;
   double x,y,z;
   MElement*element;
@@ -2203,7 +2201,8 @@ void Temporary::read_data(std::string file_name){
   }
 }
 
-void Temporary::quadrilaterize(std::string file_name,double _w1,double _w2,double _w3){
+void Temporary::quadrilaterize(std::string file_name,double _w1,double _w2,double _w3)
+{
   GFace*face;
   GModel*model = GModel::current();
   GModel::fiter iterator;
@@ -2219,15 +2218,3 @@ void Temporary::quadrilaterize(std::string file_name,double _w1,double _w2,doubl
   }
 }
 
-void Temporary::registerBindings(binding *b){
-  classBinding*cb = b->addClass<Temporary>("Temporary");
-  cb->setDescription("This class is used to create quad meshes from a script.");
-  methodBinding*cm;
-  cm = cb->setConstructor<Temporary>();
-  cm->setDescription("This is the constructor.");
-  cm = cb->addMethod("quadrilaterize",&Temporary::quadrilaterize);
-  cm->setDescription("This function creates the quad mesh.");
-  cm->setArgNames("file_name","w1","w2","w3",NULL);
-}
-
-
diff --git a/Mesh/meshGFaceOptimize.h b/Mesh/meshGFaceOptimize.h
index d4f01d47be..98d6b6f17e 100644
--- a/Mesh/meshGFaceOptimize.h
+++ b/Mesh/meshGFaceOptimize.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -141,7 +141,6 @@ class Temporary{
 	static double compute_total_cost(double,double);
 	static void select_weights(double,double,double);
 	static double compute_alignment(const MEdge&,MElement*,MElement*);
-	static void registerBindings(binding *b);
 };
 
 #endif
diff --git a/Mesh/meshGFaceQuadrilateralize.cpp b/Mesh/meshGFaceQuadrilateralize.cpp
index ce2bd31e7f..cc0754cdf2 100644
--- a/Mesh/meshGFaceQuadrilateralize.cpp
+++ b/Mesh/meshGFaceQuadrilateralize.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceQuadrilateralize.h b/Mesh/meshGFaceQuadrilateralize.h
index 99afc2d6fe..c4682222bd 100644
--- a/Mesh/meshGFaceQuadrilateralize.h
+++ b/Mesh/meshGFaceQuadrilateralize.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGFaceTransfinite.cpp b/Mesh/meshGFaceTransfinite.cpp
index ce00a080ec..e46d45701c 100644
--- a/Mesh/meshGFaceTransfinite.cpp
+++ b/Mesh/meshGFaceTransfinite.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegion.cpp b/Mesh/meshGRegion.cpp
index 0674c9d137..0f104fa8f6 100644
--- a/Mesh/meshGRegion.cpp
+++ b/Mesh/meshGRegion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegion.h b/Mesh/meshGRegion.h
index 034891e50f..25bbddc116 100644
--- a/Mesh/meshGRegion.h
+++ b/Mesh/meshGRegion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionCarveHole.cpp b/Mesh/meshGRegionCarveHole.cpp
index ffe26fa699..0219a186af 100644
--- a/Mesh/meshGRegionCarveHole.cpp
+++ b/Mesh/meshGRegionCarveHole.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionDelaunayInsertion.cpp b/Mesh/meshGRegionDelaunayInsertion.cpp
index 4d63df8814..484c31b5e3 100644
--- a/Mesh/meshGRegionDelaunayInsertion.cpp
+++ b/Mesh/meshGRegionDelaunayInsertion.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionDelaunayInsertion.h b/Mesh/meshGRegionDelaunayInsertion.h
index 1c23b284eb..2e20470e75 100644
--- a/Mesh/meshGRegionDelaunayInsertion.h
+++ b/Mesh/meshGRegionDelaunayInsertion.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionExtruded.cpp b/Mesh/meshGRegionExtruded.cpp
index 2bb55f4d30..110b0696f3 100644
--- a/Mesh/meshGRegionExtruded.cpp
+++ b/Mesh/meshGRegionExtruded.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionLocalMeshMod.cpp b/Mesh/meshGRegionLocalMeshMod.cpp
index 5128bb5923..11fa9beb07 100644
--- a/Mesh/meshGRegionLocalMeshMod.cpp
+++ b/Mesh/meshGRegionLocalMeshMod.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionLocalMeshMod.h b/Mesh/meshGRegionLocalMeshMod.h
index 3672cf3ba4..9c4cf5af7b 100644
--- a/Mesh/meshGRegionLocalMeshMod.h
+++ b/Mesh/meshGRegionLocalMeshMod.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshGRegionTransfinite.cpp b/Mesh/meshGRegionTransfinite.cpp
index 7bcf689c31..8152dc031c 100644
--- a/Mesh/meshGRegionTransfinite.cpp
+++ b/Mesh/meshGRegionTransfinite.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshPartition.cpp b/Mesh/meshPartition.cpp
index f55ee7d567..53a0c25448 100644
--- a/Mesh/meshPartition.cpp
+++ b/Mesh/meshPartition.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshPartition.h b/Mesh/meshPartition.h
index 928fa8d939..2f6caf2a2d 100644
--- a/Mesh/meshPartition.h
+++ b/Mesh/meshPartition.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshPartitionObjects.h b/Mesh/meshPartitionObjects.h
index 26e2b73109..48988d00cc 100644
--- a/Mesh/meshPartitionObjects.h
+++ b/Mesh/meshPartitionObjects.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/meshPartitionOptions.cpp b/Mesh/meshPartitionOptions.cpp
index 101a7ea3e6..c9f4c6dee8 100644
--- a/Mesh/meshPartitionOptions.cpp
+++ b/Mesh/meshPartitionOptions.cpp
@@ -57,26 +57,3 @@ void meshPartitionOptions::setAlgorithm(int algo)
 {
   algorithm=algo;
 }
-
-
-#include "Bindings.h"
-void meshPartitionOptions::registerBindings(binding *b){
-  classBinding *cb = b->addClass<meshPartitionOptions>("meshPartitionOptions");
-  cb->setDescription("Defines the options for mesh partitioning (CHACO/METIS)");
-  methodBinding *cm;
-  cm = cb->setConstructor<meshPartitionOptions>();
-  cm->setDescription("Build an object that contains all the options needed to perform a partitioning, when creating object default options are applied");
-  cm->setArgNames(NULL);
-  cm = cb->addMethod("partition", &meshPartitionOptions::partition);
-  cm->setDescription("Partition with the specified option the GModel given as argument");
-  cm->setArgNames("GModel", NULL);
-  cm = cb->addMethod("setNumOfPartitions", &meshPartitionOptions::setNumOfPartitions);
-  cm->setDescription("Define the number of partitions desired");
-  cm->setArgNames("numPart", NULL);
-  cm = cb->addMethod("getNumConstraints", &meshPartitionOptions::getNumConstraints);
-  cm->setDescription("Get the number of different weights on the elements");
-  cm->setArgNames(NULL);
-  cm = cb->addMethod("setAlgorithm", &meshPartitionOptions::setAlgorithm);
-  cm->setDescription("Set the partitionning algorithm");
-  cm->setArgNames("algo", NULL);
-}
diff --git a/Mesh/meshPartitionOptions.h b/Mesh/meshPartitionOptions.h
index 549cb0af45..1620ee2c6f 100644
--- a/Mesh/meshPartitionOptions.h
+++ b/Mesh/meshPartitionOptions.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -116,7 +116,6 @@ class meshPartitionOptions
     int getNumConstraints(){return ncon;};
     void partition(GModel *model);
     std::map<int,  std::vector<int> >& getWeightMap(){return weightMap;};
-    static void registerBindings(binding *b);
 };
 
 #endif
diff --git a/Mesh/meshRefine.cpp b/Mesh/meshRefine.cpp
index 496834387a..2ee8cca876 100644
--- a/Mesh/meshRefine.cpp
+++ b/Mesh/meshRefine.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/multiscalePartition.h b/Mesh/multiscalePartition.h
index f1ff46b604..ad5a24af21 100644
--- a/Mesh/multiscalePartition.h
+++ b/Mesh/multiscalePartition.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/qualityMeasures.cpp b/Mesh/qualityMeasures.cpp
index 2b2e4dc88f..bfa67191ca 100644
--- a/Mesh/qualityMeasures.cpp
+++ b/Mesh/qualityMeasures.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Mesh/qualityMeasures.h b/Mesh/qualityMeasures.h
index 54dba3ff3b..22ed37b2d9 100644
--- a/Mesh/qualityMeasures.h
+++ b/Mesh/qualityMeasures.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/NonLinearSolver/CMakeLists.txt b/NonLinearSolver/CMakeLists.txt
index 98fcf560fa..9c40d305ef 100644
--- a/NonLinearSolver/CMakeLists.txt
+++ b/NonLinearSolver/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/NonLinearSolver/internalPoints/CMakeLists.txt b/NonLinearSolver/internalPoints/CMakeLists.txt
index 2990968ad2..10827f32d4 100644
--- a/NonLinearSolver/internalPoints/CMakeLists.txt
+++ b/NonLinearSolver/internalPoints/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/CMakeLists.txt b/Numeric/CMakeLists.txt
index edf76e892e..88cd8089b5 100644
--- a/Numeric/CMakeLists.txt
+++ b/Numeric/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/DivideAndConquer.cpp b/Numeric/DivideAndConquer.cpp
index d8715ae9ee..b1de08dcf0 100644
--- a/Numeric/DivideAndConquer.cpp
+++ b/Numeric/DivideAndConquer.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -863,14 +863,16 @@ void DocRecord::setPoints(fullMatrix<double> *p)
   }
 } 
 
-void DocRecord::initialize(){
+void DocRecord::initialize()
+{
   int i;
   for(i=0;i<numPoints;i++){
 	points[i].flag = 0;
   }
 }
 
-bool DocRecord::remove_point(int index){
+bool DocRecord::remove_point(int index)
+{
   if(points[index].flag == 0){
     points[index].flag = 1;
     return 1;
@@ -878,7 +880,8 @@ bool DocRecord::remove_point(int index){
   else return 0;
 }
 
-void DocRecord::remove_all(){
+void DocRecord::remove_all()
+{
   int i;
   int index;
   int numPoints2;
@@ -906,7 +909,8 @@ void DocRecord::remove_all(){
   numPoints = numPoints2;
 }
 
-void DocRecord::add_point(double x,double y,GFace*face){
+void DocRecord::add_point(double x,double y,GFace*face)
+{
   PointRecord point;
   point.where.h = x;
   point.where.v = y; 
@@ -915,31 +919,3 @@ void DocRecord::add_point(double x,double y,GFace*face){
   numPoints = numPoints+1;
 }
 
-#include "Bindings.h"
-
-void DocRecord::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<DocRecord>("Triangulator");
-  cb->setDescription("A class that does 2D delaunay triangulation "
-                     "(JF's SANDBOX for the moment)");
-  methodBinding *cm;
-
-  cm = cb->addMethod("setPoints", &DocRecord::setPoints);
-  cm->setDescription("Set the NumPoints points of the triangulation (x,y,fixed)");
-  cm->setArgNames("points",NULL);
-  cm = cb->addMethod("Triangulate", &DocRecord::MakeMeshWithPoints);
-  cm->setDescription("Compute the Delaunay triangulation");
-  cm = cb->addMethod("Voronoi", &DocRecord::Voronoi);
-  cm->setDescription("Compute the Voronoi cells");
-  cm = cb->addMethod("hullSize", &DocRecord::hullSize);
-  cm->setDescription("returns the size of the hull");
-  cm = cb->addMethod("makePosView", &DocRecord::makePosView);
-  cm->setDescription("save a .pos file with the voronoi in GFace");
-  cm->setArgNames("FileName", "GFace", NULL);
-  cm = cb->addMethod("Lloyd", &DocRecord::Lloyd);
-  cm->setDescription("do one iteration of Lloyd's algorithm");
-  cm->setArgNames("Type",NULL);
-  cm = cb->setConstructor<DocRecord,int>();
-  cm->setDescription ("A Triangulator");
-  cm->setArgNames("NumPoints",NULL);
-}
diff --git a/Numeric/DivideAndConquer.h b/Numeric/DivideAndConquer.h
index 84d64d63de..b1ffec78c7 100644
--- a/Numeric/DivideAndConquer.h
+++ b/Numeric/DivideAndConquer.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -15,7 +15,6 @@
 #include "simpleFunction.h"
 #include "Octree.h"
 
-class binding;
 class GFace;
 typedef struct _CDLIST DListRecord, *DListPeek;
 typedef int PointNumero;
@@ -109,7 +108,6 @@ class DocRecord{
   void remove_all();
   void add_point(double,double,GFace*);
   PointNumero *ConvertDlistToArray(DListPeek *dlist, int *n);
-  static void registerBindings(binding *b);
 };
 
 void centroidOfOrientedBox(std::vector<SPoint2> &pts,
diff --git a/Numeric/Gauss.cpp b/Numeric/Gauss.cpp
index 50fbb050db..ca0c88b2e9 100644
--- a/Numeric/Gauss.cpp
+++ b/Numeric/Gauss.cpp
@@ -1,7 +1,9 @@
 #include "Gauss.h"
 #include "GmshDefines.h"
-#include "Bindings.h"
-static void pts2fullMatrix(int npts, IntPt *pts, fullMatrix<double> &pMatrix, fullMatrix<double> &wMatrix) {
+
+static void pts2fullMatrix(int npts, IntPt *pts, fullMatrix<double> &pMatrix, 
+                           fullMatrix<double> &wMatrix) 
+{
   pMatrix.resize(npts,3);
   wMatrix.resize(npts,1);
   for (int i=0;i<npts;i++) {
@@ -11,49 +13,39 @@ static void pts2fullMatrix(int npts, IntPt *pts, fullMatrix<double> &pMatrix, fu
     wMatrix(i,0) = pts[i].weight;
   }
 }
-void gaussIntegration::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<gaussIntegration>("gaussIntegration");
-  cb->setDescription("Gauss integration rules (points+weights)");
-  methodBinding *mb = cb->addMethod("getTriangle", &gaussIntegration::getTriangle);
-  mb->setDescription("get the integration rule that integrate exactly a polynom of given order on a triangle");
-  mb->setArgNames("order","points","weights",NULL);
-  mb = cb->addMethod("getLine", &gaussIntegration::getLine);
-  mb->setDescription("get the integration rule that integrate exactly a polynom of given order on a line");
-  mb->setArgNames("order","points","weights",NULL);
-  mb = cb->addMethod("getQuad", &gaussIntegration::getQuad);
-  mb->setDescription("get the integration rule that integrate exactly a polynom of given order on a quad");
-  mb->setArgNames("order","points","weights",NULL);
-  mb = cb->addMethod("getTetrahedron", &gaussIntegration::getTetrahedron);
-  mb->setDescription("get the integration rule that integrate exactly a polynom of given order on a tetrahedron");
-  mb->setArgNames("order","points","weights",NULL);
-  mb = cb->addMethod("getHexahedron", &gaussIntegration::getHexahedron);
-  mb->setDescription("get the integration rule that integrate exactly a polynom of given order on a hexahedron");
-  mb->setArgNames("order","points","weights",NULL);
-  mb = cb->addMethod("getPrism", &gaussIntegration::getPrism);
-  mb->setDescription("get the integration rule that integrate exactly a polynom of given order on a prism");
-  mb->setArgNames("order","points","weights",NULL);
-}
 
-void gaussIntegration::getTriangle(int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+void gaussIntegration::getTriangle(int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   pts2fullMatrix(getNGQTPts(order),getGQTPts(order),pts,weights);
 }
-void gaussIntegration::getLine(int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+
+void gaussIntegration::getLine(int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   pts2fullMatrix(getNGQLPts(order),getGQLPts(order),pts,weights);
 }
-void gaussIntegration::getQuad(int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+
+void gaussIntegration::getQuad(int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   pts2fullMatrix(getNGQQPts(order),getGQQPts(order),pts,weights);
 }
-void gaussIntegration::getTetrahedron(int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+
+void gaussIntegration::getTetrahedron(int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   pts2fullMatrix(getNGQTetPts(order),getGQTetPts(order),pts,weights);
 }
-void gaussIntegration::getHexahedron(int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+
+void gaussIntegration::getHexahedron(int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   pts2fullMatrix(getNGQHPts(order),getGQHPts(order),pts,weights);
 }
-void gaussIntegration::getPrism(int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+
+void gaussIntegration::getPrism(int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   pts2fullMatrix(getNGQPriPts(order),getGQPriPts(order),pts,weights);
 }
-void gaussIntegration::get(int elementType, int order, fullMatrix<double> &pts, fullMatrix<double> &weights) {
+
+void gaussIntegration::get(int elementType, int order, fullMatrix<double> &pts, fullMatrix<double> &weights)
+{
   switch (elementType) {
     case TYPE_TRI : pts2fullMatrix(getNGQTPts(order), getGQTPts(order), pts, weights); break;
     case TYPE_LIN : pts2fullMatrix(getNGQLPts(order), getGQLPts(order), pts, weights); break;
diff --git a/Numeric/Gauss.h b/Numeric/Gauss.h
index 789f801080..bc2b355959 100644
--- a/Numeric/Gauss.h
+++ b/Numeric/Gauss.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -34,9 +34,6 @@ IntPt *getGQPriPts(int order);
 int getNGQHPts(int order);
 IntPt *getGQHPts(int order);
 
-//For now this class is only for bindings but maybe the interface is
-//cleaner (it does not add new types) and it can replace the other
-//interface
 class gaussIntegration {
   public:
   static void get(int elementType, int order, fullMatrix<double> &pts, fullMatrix<double> &weights);
@@ -46,7 +43,6 @@ class gaussIntegration {
   static void getTetrahedron(int order, fullMatrix<double> &pts, fullMatrix<double> &weights);
   static void getHexahedron(int order, fullMatrix<double> &pts, fullMatrix<double> &weights);
   static void getPrism(int order, fullMatrix<double> &pts, fullMatrix<double> &weights);
-  static void registerBindings(binding *b);
 };
 
 #endif
diff --git a/Numeric/GaussLegendre1D.h b/Numeric/GaussLegendre1D.h
index 482c0c25cf..91c4bdc3ae 100644
--- a/Numeric/GaussLegendre1D.h
+++ b/Numeric/GaussLegendre1D.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussLegendreSimplex.cpp b/Numeric/GaussLegendreSimplex.cpp
index 30bcc7bb66..aeed112f42 100644
--- a/Numeric/GaussLegendreSimplex.cpp
+++ b/Numeric/GaussLegendreSimplex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureHex.cpp b/Numeric/GaussQuadratureHex.cpp
index 5d2c4fee1a..808aae08b0 100644
--- a/Numeric/GaussQuadratureHex.cpp
+++ b/Numeric/GaussQuadratureHex.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureLin.cpp b/Numeric/GaussQuadratureLin.cpp
index 13c056136f..3562a03b0b 100644
--- a/Numeric/GaussQuadratureLin.cpp
+++ b/Numeric/GaussQuadratureLin.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadraturePri.cpp b/Numeric/GaussQuadraturePri.cpp
index edcd7a06df..1a328b750c 100644
--- a/Numeric/GaussQuadraturePri.cpp
+++ b/Numeric/GaussQuadraturePri.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureQuad.cpp b/Numeric/GaussQuadratureQuad.cpp
index 20b0b5aee3..ddfde8c4f7 100644
--- a/Numeric/GaussQuadratureQuad.cpp
+++ b/Numeric/GaussQuadratureQuad.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureTet.cpp b/Numeric/GaussQuadratureTet.cpp
index ae6d728529..c30f455cfd 100644
--- a/Numeric/GaussQuadratureTet.cpp
+++ b/Numeric/GaussQuadratureTet.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/GaussQuadratureTri.cpp b/Numeric/GaussQuadratureTri.cpp
index 123ea365b2..7409586c3f 100644
--- a/Numeric/GaussQuadratureTri.cpp
+++ b/Numeric/GaussQuadratureTri.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/Iso.cpp b/Numeric/Iso.cpp
index 719bcee9fd..ade9ad1991 100644
--- a/Numeric/Iso.cpp
+++ b/Numeric/Iso.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/Iso.h b/Numeric/Iso.h
index 11560e6a4f..be1044e732 100644
--- a/Numeric/Iso.h
+++ b/Numeric/Iso.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/JacobianBasis.cpp b/Numeric/JacobianBasis.cpp
index 2863cbceac..48c164af03 100644
--- a/Numeric/JacobianBasis.cpp
+++ b/Numeric/JacobianBasis.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/JacobianBasis.h b/Numeric/JacobianBasis.h
index 97924d136c..645c512c75 100644
--- a/Numeric/JacobianBasis.h
+++ b/Numeric/JacobianBasis.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/Numeric.cpp b/Numeric/Numeric.cpp
index 25ae05b370..b90a654082 100644
--- a/Numeric/Numeric.cpp
+++ b/Numeric/Numeric.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/Numeric.h b/Numeric/Numeric.h
index 7aa6d64fbb..b921e32754 100644
--- a/Numeric/Numeric.h
+++ b/Numeric/Numeric.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/cartesian.h b/Numeric/cartesian.h
index b90a934919..0698f7276c 100644
--- a/Numeric/cartesian.h
+++ b/Numeric/cartesian.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/fullMatrix.cpp b/Numeric/fullMatrix.cpp
index 342183ce78..cd289f5f68 100644
--- a/Numeric/fullMatrix.cpp
+++ b/Numeric/fullMatrix.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -379,43 +379,3 @@ bool fullMatrix<double>::svd(fullMatrix<double> &V, fullVector<double> &S)
 }
 
 #endif
-
-#include "Bindings.h"
-
-template<>
-void fullMatrix<double>::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<fullMatrix<double> >("fullMatrix");
-  cb->setDescription("A full matrix of double-precision floating point numbers. "
-                     "The memory is allocated in one continuous block and stored "
-                     "in column major order (like in fortran).");
-  methodBinding *cm;
-  cm = cb->setConstructor<fullMatrix<double>,int,int>();
-  cm->setDescription ("A new matrix of size 'nRows' x 'nColumns'");
-  cm->setArgNames("nRows","nColumns",NULL);
-  cm = cb->addMethod("size1", &fullMatrix<double>::size1);
-  cm->setDescription("Returns the number of rows in the matrix");
-  cm = cb->addMethod("size2", &fullMatrix<double>::size2);
-  cm->setDescription("Returns the number of columns in the matrix");
-  cm = cb->addMethod("get", &fullMatrix<double>::get);
-  cm->setArgNames("i","j",NULL);
-  cm->setDescription("Returns the (i,j) entry of the matrix");
-  cm = cb->addMethod("set", &fullMatrix<double>::set);
-  cm->setArgNames("i","j","v",NULL);
-  cm->setDescription("Sets the (i,j) entry of the matrix to v");
-  cm = cb->addMethod("resize", &fullMatrix<double>::resize);
-  cm->setArgNames("nRows","nColumns","reset",NULL);
-  cm->setDescription("Change the size of the fullMatrix (and re-alloc if needed), "
-                     "values are set to zero if reset is true");
-  cm = cb->addMethod("gemm", &fullMatrix<double>::gemm);
-  cm->setArgNames("A","B","alpha","beta",NULL);
-  cm->setDescription("this = beta*this + alpha * (A.B)");
-  cm = cb->addMethod("gemm_naive", &fullMatrix<double>::gemm_naive);
-  cm->setArgNames("A","B","alpha","beta",NULL);
-  cm->setDescription("this = beta*this + alpha * (A.B)");
-  cm = cb->addMethod("print", &fullMatrix<double>::print);
-  cm->setArgNames("name","format",NULL);
-  cm->setDescription("print the matrix");
-  cm = cb->addMethod("invertInPlace", &fullMatrix<double>::invertInPlace);
-  cm->setDescription("invert the matrix and return the determinant");
-}
diff --git a/Numeric/fullMatrix.h b/Numeric/fullMatrix.h
index 2c9e7a6122..10c9955fe8 100644
--- a/Numeric/fullMatrix.h
+++ b/Numeric/fullMatrix.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -11,7 +11,6 @@
 #include "GmshConfig.h"
 #include "GmshMessage.h"
 
-class binding;
 template <class scalar> class fullMatrix;
 
 // An abstract interface for vectors of scalar
@@ -561,6 +560,5 @@ class fullMatrix
 #endif
   ;
 
-  static void registerBindings(binding *b);
 };
 #endif
diff --git a/Numeric/mathEvaluator.cpp b/Numeric/mathEvaluator.cpp
index 1b22d4aae5..56f14b9052 100644
--- a/Numeric/mathEvaluator.cpp
+++ b/Numeric/mathEvaluator.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/mathEvaluator.h b/Numeric/mathEvaluator.h
index ee636bca89..adf54d71f9 100644
--- a/Numeric/mathEvaluator.h
+++ b/Numeric/mathEvaluator.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/polynomialBasis.cpp b/Numeric/polynomialBasis.cpp
index 59b59416df..5659d11090 100644
--- a/Numeric/polynomialBasis.cpp
+++ b/Numeric/polynomialBasis.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -14,7 +14,9 @@
 #include "Gauss.h"
 
 #include "stdlib.h"
-static void printClosure(polynomialBasis::clCont &fullClosure, std::vector<int> &closureRef, polynomialBasis::clCont &closures) {
+static void printClosure(polynomialBasis::clCont &fullClosure, std::vector<int> &closureRef,
+                         polynomialBasis::clCont &closures)
+{
   for (int i = 0; i <closures.size(); i++) {
     printf("%3i  (%2i): ", i, closureRef[i]);
     if(closureRef[i]==-1){
@@ -35,7 +37,8 @@ static void printClosure(polynomialBasis::clCont &fullClosure, std::vector<int>
   }
 }
 
-static int getTriangleType (int order) {
+static int getTriangleType (int order)
+{
   switch(order) {
     case 0 : return MSH_TRI_1;
     case 1 : return MSH_TRI_3;
@@ -51,7 +54,9 @@ static int getTriangleType (int order) {
     default : Msg::Error("triangle order %i unknown", order);
   }
 }
-static int getQuadType (int order) {
+
+static int getQuadType (int order)
+{
   switch(order) {
     case 0 : return MSH_QUA_1;
     case 1 : return MSH_QUA_4;
@@ -67,7 +72,9 @@ static int getQuadType (int order) {
     default : Msg::Error("quad order %i unknown", order);
   }
 }
-static int getLineType (int order) {
+
+static int getLineType (int order)
+{
   switch(order) {
     case 0 : return MSH_LIN_1;
     case 1 : return MSH_LIN_2;
@@ -84,7 +91,6 @@ static int getLineType (int order) {
   }
 }
 
-
 static fullMatrix<double> generate1DMonomials(int order)
 {
   fullMatrix<double> monomials(order + 1, 1);
@@ -149,7 +155,9 @@ static fullMatrix<double> generatePascalSerendipityTriangle(int order)
   return monomials;
 }
 
-const fullMatrix<double> &polynomialBasis::getGradientAtFaceIntegrationPoints(int integrationOrder, int closureId) const{
+const fullMatrix<double> &polynomialBasis::getGradientAtFaceIntegrationPoints(int integrationOrder, 
+                                                                              int closureId) const
+{
   std::vector<fullMatrix<double> > &dfAtFace = _dfAtFace[integrationOrder];
   if (dfAtFace.empty()) {
     dfAtFace.resize(closures.size());
@@ -1010,7 +1018,8 @@ static void generate1dVertexClosure(polynomialBasis::clCont &closure)
   closure[1].type = MSH_PNT;
 }
 
-static void generate1dVertexClosureFull(polynomialBasis::clCont &closure, std::vector<int> &closureRef, int order)
+static void generate1dVertexClosureFull(polynomialBasis::clCont &closure, std::vector<int> &closureRef,
+                                        int order)
 {
   closure.clear();
   closure.resize(2);
@@ -1028,7 +1037,7 @@ static void generate1dVertexClosureFull(polynomialBasis::clCont &closure, std::v
 }
 
 static void getFaceClosureTet(int iFace, int iSign, int iRotate, polynomialBasis::closure &closure,
-                           int order)
+                              int order)
 {
 
   closure.clear();
@@ -1093,7 +1102,8 @@ static void getFaceClosureTet(int iFace, int iSign, int iRotate, polynomialBasis
     break;
   }
 }
-static void generate2dEdgeClosureFull(polynomialBasis::clCont &closure, std::vector<int> &closureRef, int order, int nNod, bool serendip)
+static void generate2dEdgeClosureFull(polynomialBasis::clCont &closure, std::vector<int> &closureRef,
+                                      int order, int nNod, bool serendip)
 {
   closure.clear();
   closure.resize(2*nNod);
@@ -1171,7 +1181,8 @@ static void generateFaceClosureTet(polynomialBasis::clCont &closure, int order)
   }
 }
 
-static void generateFaceClosureTetFull(polynomialBasis::clCont &closureFull, std::vector<int> &closureRef, int order, bool serendip)
+static void generateFaceClosureTetFull(polynomialBasis::clCont &closureFull, std::vector<int> &closureRef,
+                                       int order, bool serendip)
 {
   closureFull.clear();
   //input :
@@ -1297,7 +1308,8 @@ static void generateFaceClosurePrism(polynomialBasis::clCont &closure, int order
   }
 }
 
-static void generateFaceClosurePrismFull(polynomialBasis::clCont &closureFull, std::vector<int> &closureRef, int order) 
+static void generateFaceClosurePrismFull(polynomialBasis::clCont &closureFull, 
+                                         std::vector<int> &closureRef, int order) 
 {
   polynomialBasis::clCont closure;
   closureFull.clear();
@@ -2172,17 +2184,3 @@ const fullMatrix<double> &polynomialBases::findInjector(int tag1, int tag2)
   return injector[key];
 }
 
-#include "Bindings.h"
-void polynomialBasis::registerBindings(binding *b) 
-{
-  classBinding *cb = b->addClass<polynomialBasis>("polynomialBasis");
-  cb->setDescription("polynomial shape functions for elements");
-  methodBinding *mb = cb->addMethod
-    ("f", (void (polynomialBasis::*)(fullMatrix<double>&, fullMatrix<double>&))
-     &polynomialBasis::f);
-  mb->setDescription("evaluate the shape functions");
-  mb->setArgNames("nodes","values",NULL);
-  mb = cb->addMethod("find",&polynomialBases::find);
-  mb->setDescription("return the polynomial basis corresponding to an element type");
-  mb->setArgNames("elementType",NULL);
-}
diff --git a/Numeric/polynomialBasis.h b/Numeric/polynomialBasis.h
index 0170b2c633..3e212b5406 100644
--- a/Numeric/polynomialBasis.h
+++ b/Numeric/polynomialBasis.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -65,34 +65,34 @@ inline double pow_int(const double &a, const int &n)
   }
 }
 
-class binding;
-
-// presently those function spaces are only for simplices and quads;
-// should be extended to other elements like hexes
 class polynomialBasis
 {
   mutable std::map<int,std::vector<fullMatrix<double> > > _dfAtFace; //integrationOrder, closureId => df/dXi
  public:
-  //for now the only implemented polynomial basis are nodal poly basis, we use the type of the corresponding gmsh element as type
+  //for now the only implemented polynomial basis are nodal poly
+  //basis, we use the type of the corresponding gmsh element as type
   int type, parentType;
   class closure : public std::vector<int> {
     public: 
     int type;
   };
   typedef std::vector<closure> clCont;
-  // closures is the list of the nodes of each face, in the order of the polynomialBasis of the face
-  // fullClosures is  mapping of the nodes of the element that rotates the element so that the considered face becomes the first one
-  // in the right orientation
-  // For element, like prisms that have different kind of faces, fullCLosure[i] rotates the element so that the considered face
-  // becomes the closureRef[i]-th face (the first tringle or the first quad face)
-   clCont closures, fullClosures;
+  // closures is the list of the nodes of each face, in the order of
+  // the polynomialBasis of the face; fullClosures is mapping of the
+  // nodes of the element that rotates the element so that the
+  // considered face becomes the first one in the right orientation;
+  // For element, like prisms that have different kind of faces,
+  // fullCLosure[i] rotates the element so that the considered face
+  // becomes the closureRef[i]-th face (the first tringle or the first
+  // quad face)
+  clCont closures, fullClosures;
   std::vector<int> closureRef;
   fullMatrix<double> points;
   fullMatrix<double> monomials;
   fullMatrix<double> coefficients;
   int numFaces;
-  // for a given face/edge, with both a sign and a rotation,
-  // give an ordered list of nodes on this face/edge
+  // for a given face/edge, with both a sign and a rotation, give an
+  // ordered list of nodes on this face/edge
   inline const std::vector<int> &getClosure(int id) const
   {
     return closures[id];
@@ -278,7 +278,6 @@ class polynomialBasis
     }
   }
   const fullMatrix<double> &getGradientAtFaceIntegrationPoints(int integrationOrder, int closureId) const;
-  static void registerBindings(binding *b);
 };
 
 class polynomialBases
diff --git a/Numeric/robustPredicates.h b/Numeric/robustPredicates.h
index 688fac25fb..11f731715a 100644
--- a/Numeric/robustPredicates.h
+++ b/Numeric/robustPredicates.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Numeric/simpleFunction.h b/Numeric/simpleFunction.h
index 883f717603..a4566ea5cc 100644
--- a/Numeric/simpleFunction.h
+++ b/Numeric/simpleFunction.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -26,32 +26,6 @@ class simpleFunction {
   { dfdx = dfdy = dfdz = 0.0; }*/
 };
 
-#include "GmshConfig.h"
-#ifdef HAVE_LUA
-#include "LuaBindings.h"
-template <class scalar>
-class simpleFunctionLua : public simpleFunction<scalar> {
-  lua_State *_L;
-  std::string _luaFunctionName;
- public:
-  scalar operator () (double x, double y, double z) const
-  {
-    lua_getfield(_L, LUA_GLOBALSINDEX, _luaFunctionName.c_str());
-    luaStack<double>::push(_L, x);
-    luaStack<double>::push(_L, y);
-    luaStack<double>::push(_L, z);
-    lua_call(_L, 3, 1);
-    return luaStack<scalar>::get(_L,-1);
-  }
-  simpleFunctionLua (lua_State *L, const std::string luaFunctionName, scalar s)
-    : simpleFunction<scalar>(s)
-  {
-    _L = L;
-    _luaFunctionName = luaFunctionName;
-  }
-};
-#endif
-
 template <class scalar>
 class simpleFunctionOnElement : public simpleFunction<scalar>
 {
diff --git a/Parser/CMakeLists.txt b/Parser/CMakeLists.txt
index 2a1bb4d92b..a3f9d8a19f 100644
--- a/Parser/CMakeLists.txt
+++ b/Parser/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/FunctionManager.cpp b/Parser/FunctionManager.cpp
index 2db58d9acb..94e6b64aae 100644
--- a/Parser/FunctionManager.cpp
+++ b/Parser/FunctionManager.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/FunctionManager.h b/Parser/FunctionManager.h
index bad265d8e8..601db54176 100644
--- a/Parser/FunctionManager.h
+++ b/Parser/FunctionManager.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l
index a3bbc2c81a..aef8d50c91 100644
--- a/Parser/Gmsh.l
+++ b/Parser/Gmsh.l
@@ -1,5 +1,5 @@
 %{
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 921c8ad454..c00d254eb9 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -344,7 +344,7 @@
 /* Copy the first part of user declarations.  */
 #line 1 "Gmsh.y"
 
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index 125353f9c4..9ccbacdc0e 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,5 +1,5 @@
 %{
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index c3a05213f4..2c0d82dbc9 100644
--- a/Parser/Gmsh.yy.cpp
+++ b/Parser/Gmsh.yy.cpp
@@ -872,7 +872,7 @@ int gmsh_yy_flex_debug = 0;
 char *gmsh_yytext;
 #line 1 "Gmsh.l"
 #line 2 "Gmsh.l"
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Parser/Parser.h b/Parser/Parser.h
index 0cea95fbd3..57b59f9760 100644
--- a/Parser/Parser.h
+++ b/Parser/Parser.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Plugin/Plugin.cpp b/Plugin/Plugin.cpp
index 6ce300e421..90d14984e8 100644
--- a/Plugin/Plugin.cpp
+++ b/Plugin/Plugin.cpp
@@ -98,8 +98,8 @@ PViewData *GMSH_PostPlugin::getPossiblyAdaptiveData(PView *view)
   PViewData *data = view->getData();
   if(data->isAdaptive() && data->getNumTimeSteps() > 1)
     Msg::Warning("Using adapted data from view '%s': only the current time step (%d/%d) "
-                 "is available to the plugin", view->getOptions()->timeStep, 
-                 data->getNumTimeSteps(), view->getData()->getName().c_str());
+                 "is available to the plugin", view->getData()->getName().c_str(),
+                 view->getOptions()->timeStep, data->getNumTimeSteps());
   return view->getData(true);
 }
 
diff --git a/Post/CMakeLists.txt b/Post/CMakeLists.txt
index cad2a94397..58f2a2e188 100644
--- a/Post/CMakeLists.txt
+++ b/Post/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/ColorTable.cpp b/Post/ColorTable.cpp
index 04d1dd86f5..be7ae05e5b 100644
--- a/Post/ColorTable.cpp
+++ b/Post/ColorTable.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/ColorTable.h b/Post/ColorTable.h
index 30376cdf60..23c9ebd6bb 100644
--- a/Post/ColorTable.h
+++ b/Post/ColorTable.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/OctreePost.cpp b/Post/OctreePost.cpp
index 338d3a0b15..b53184f6d5 100644
--- a/Post/OctreePost.cpp
+++ b/Post/OctreePost.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/OctreePost.h b/Post/OctreePost.h
index 792b76ffda..51f6b28a6d 100644
--- a/Post/OctreePost.h
+++ b/Post/OctreePost.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PView.cpp b/Post/PView.cpp
index a757940c09..8b42271458 100644
--- a/Post/PView.cpp
+++ b/Post/PView.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -312,19 +312,3 @@ PView *PView::getViewByNum(int num, int timeStep, int partition)
   return 0;
 }
 
-#include "Bindings.h"
-void PView::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<PView>("PView");
-  cb->setDescription("A post-processing view");
-  methodBinding *cm;
-  cm = cb->addMethod("write",&PView::write);
-  cm->setArgNames("fileName","format","append",NULL);
-  cm->setDescription("write data to a file. Format can be: 0 for ascii pos file, "
-                     "1 for binary pos file, 2 for parsed pos file, 3 for STL, "
-                     "4 for TXT, 5 for MSH, 6 for MED files, or 10 for automatic. "
-                     "'append' option is only supported for pos format.");
-  cm = cb->addMethod("getData",&PView::getData);
-  cm->setArgNames("useAdaptiveIfAvailable",NULL);
-  cm->setDescription("return the structure containing the data of this view.");
-}
diff --git a/Post/PView.h b/Post/PView.h
index 6db1291f71..f37d8a7443 100644
--- a/Post/PView.h
+++ b/Post/PView.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -19,7 +19,6 @@ class GModel;
 class GMSH_PostPlugin;
 class ConnectionManager;
 
-class binding;
 // A post-processing view.
 class PView{
  private:
@@ -125,7 +124,6 @@ class PView{
 
   // smoothed normals
   smooth_normals *normals;
-  static void registerBindings(binding *b);
 };
 
 // this is the maximum number of nodes of elements we actually *draw*
diff --git a/Post/PViewData.cpp b/Post/PViewData.cpp
index 6d095d4ff4..0848bb1426 100644
--- a/Post/PViewData.cpp
+++ b/Post/PViewData.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -132,82 +132,3 @@ bool PViewData::combineSpace(nameData &nd)
   Msg::Error("Combine space is not implemented for this type of data");
   return false; 
 }
-
-double PViewData::getValueBinding(int step, int ent, int ele, int nod, int comp)
-{
-  double val;
-  getValue(step,ent,ele,nod,comp,val);
-  return val;
-}
-
-void PViewData::getAllValuesForElementBinding(int step, int ent, int ele, 
-                                              fullMatrix<double> &m)
-{
-  for (int i = 0; i < m.size1(); i++)
-    for (int j = 0; j < m.size2(); j++)
-      getValue(step, ent, ele, i, j, m(i, j));
-}
-
-void PViewData::getAllNodesForElementBinding(int step, int ent, int ele,
-                                             fullMatrix<double> &m)
-{
-  for (int i = 0; i < m.size1(); i++)
-    getNode(step, ent, ele, i, m(i, 0), m(i, 1), m(i, 2));
-}
-
-#include "Bindings.h"
-void PViewData::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<PViewData>("PViewData");
-  cb->setDescription("The data of a post-processing view");
-  methodBinding *cm;
-  cm = cb->addMethod("getNumEntities",&PViewData::getNumEntities);
-  cm->setArgNames("step",NULL);
-  cm->setDescription("return the number of entities for a given time step "
-                     "(-1 for default)");
-  cm = cb->addMethod("getNumElements",&PViewData::getNumElements);
-  cm->setArgNames("step","entity",NULL);
-  cm->setDescription("return the number of entities for a given time step "
-                     "(-1 for default) for a given entity (-1 for all)");
-  cm = cb->addMethod("getNumTriangles",&PViewData::getNumTriangles);
-  cm->setArgNames("step",NULL);
-  cm->setDescription("return the number of triangles for a given time step "
-                     "(-1 for default)");
-
-  cm = cb->addMethod("getNumNodes",&PViewData::getNumNodes);
-  cm->setArgNames("step","entity","element",NULL);
-  cm->setDescription("return the number of nodes of one element of an entity "
-                     "of a time step (-1 for default time step)");
-
-  cm = cb->addMethod("getElement",&PViewData::getElement);
-  cm->setArgNames("step","entity","i",NULL);
-  cm->setDescription("return the i-th element of the given entity");
-
-  cm = cb->addMethod("getNumValues",&PViewData::getNumValues);
-  cm->setArgNames("step","entity","element",NULL);
-  cm->setDescription("return the number of values of one element of an entity "
-                     "of a time step (-1 for default time step)");
-
-  cm = cb->addMethod("getNumComponents",&PViewData::getNumComponents);
-  cm->setArgNames("step","entity","element",NULL);
-  cm->setDescription("return the number of components of one element of an entity "
-                     "of a time step (-1 for default time step)");
-
-  cm = cb->addMethod("getValue",&PViewData::getValueBinding);
-  cm->setArgNames("step","entity","element","node","component",NULL);
-  cm->setDescription("return one of the values");
-
-  cm = cb->addMethod("getAllValuesForElement",&PViewData::getAllValuesForElementBinding);
-  cm->setArgNames("step","entity","element","values",NULL);
-  cm->setDescription("resize and fill a fullMatrix with all values from the element.");
-
-  cm = cb->addMethod("getAllNodesForElement",&PViewData::getAllNodesForElementBinding);
-  cm->setArgNames("step","entity","element","coordinates",NULL);
-  cm->setDescription("resize fill a fullMatrix with all coordinates of the nodes "
-                     "of the element");
-
-  cm = cb->addMethod("getDimension",&PViewData::getDimension);
-  cm->setArgNames("step","entity","element",NULL);
-  cm->setDescription("return the geometrical dimension of the element-th element "
-                     "in the enttity-th entity");
-}
diff --git a/Post/PViewData.h b/Post/PViewData.h
index 9157122f14..957e228c38 100644
--- a/Post/PViewData.h
+++ b/Post/PViewData.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -19,7 +19,6 @@ class GModel;
 class GEntity;
 class MElement;
 class nameData;
-class binding;
 
 // The abstract interface to post-processing view data.
 class PViewData {
@@ -134,10 +133,6 @@ class PViewData {
   virtual void getValue(int step, int ent, int ele, int nod, int comp, double &val){}
   virtual void setValue(int step, int ent, int ele, int nod, int comp, double val);
 
-  double getValueBinding(int step, int ent, int ele, int nod, int comp);
-  void getAllValuesForElementBinding(int step, int ent, int ele, fullMatrix<double> &m);
-  void getAllNodesForElementBinding(int step, int ent, int ele, fullMatrix<double> &m);
-
   // return a scalar value (same as value for scalars, norm for
   // vectors, etc.) associated with the node-th node from the ele-th
   // element in the ent-th entity
@@ -223,8 +218,6 @@ class PViewData {
                         bool append=false);
   virtual bool writeMSH(std::string fileName, bool binary=false, bool savemesh=true);
   virtual bool writeMED(std::string fileName);
-
-  static void registerBindings(binding *b);
 };
 
 class nameData{
diff --git a/Post/PViewDataGModel.cpp b/Post/PViewDataGModel.cpp
index eb92ff67c3..26ef74a7b6 100644
--- a/Post/PViewDataGModel.cpp
+++ b/Post/PViewDataGModel.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataGModel.h b/Post/PViewDataGModel.h
index 7cf4c36fad..0dcfd56614 100644
--- a/Post/PViewDataGModel.h
+++ b/Post/PViewDataGModel.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataGModelIO.cpp b/Post/PViewDataGModelIO.cpp
index 7010f499e5..4d572d70b4 100644
--- a/Post/PViewDataGModelIO.cpp
+++ b/Post/PViewDataGModelIO.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataIO.cpp b/Post/PViewDataIO.cpp
index c7ad930b3f..20cc1eba77 100644
--- a/Post/PViewDataIO.cpp
+++ b/Post/PViewDataIO.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataList.cpp b/Post/PViewDataList.cpp
index fbc6526f51..9635e70916 100644
--- a/Post/PViewDataList.cpp
+++ b/Post/PViewDataList.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataList.h b/Post/PViewDataList.h
index 1bb7207d0a..8b72653d93 100644
--- a/Post/PViewDataList.h
+++ b/Post/PViewDataList.h
@@ -1,5 +1,5 @@
 
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataListIO.cpp b/Post/PViewDataListIO.cpp
index 942c90852f..b428507496 100644
--- a/Post/PViewDataListIO.cpp
+++ b/Post/PViewDataListIO.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewDataRemote.h b/Post/PViewDataRemote.h
index ade6645e03..b4b9287b87 100644
--- a/Post/PViewDataRemote.h
+++ b/Post/PViewDataRemote.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewFactory.cpp b/Post/PViewFactory.cpp
index 1da58147b2..c83ae20c6f 100644
--- a/Post/PViewFactory.cpp
+++ b/Post/PViewFactory.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -8,7 +8,6 @@
 #include "fullMatrix.h"
 #include "PView.h"
 #include <vector>
-#include "Bindings.h"
 
 PViewFactory::PViewFactory (std::string name, std::string type, GModel *model,
                             int timeStep, int dim)
@@ -33,16 +32,3 @@ PView *PViewFactory::createView ()
   return new PView(_name,_type,_model,_values,_timeStep,_dim);
 }
 
-void PViewFactory::registerBindings (class binding *b)
-{
-  classBinding *cb = b->addClass<PViewFactory>("PViewFactory");
-  cb->setDescription("A class to format the input data of post-procession views");
-  methodBinding *mb = cb->addMethod("setEntry", &PViewFactory::setEntry);
-  mb->setDescription("attach  data (values) on the ith nodes or elemnent");
-  mb->setArgNames("i", "values", NULL);
-  mb = cb->setConstructor<PViewFactory, std::string, std::string, GModel*,int,int>();
-  mb->setDescription("create a new factory for post-processing view based on a GModel. The type can be 'NodeData', 'ElementData' or 'ElementNodeData'");
-  mb->setArgNames("name", "type", "model","timeStep", "dimension", NULL);
-  mb = cb->addMethod("createView",&PViewFactory::createView);
-  mb->setDescription("create a post-processing view with the current data");
-}
diff --git a/Post/PViewFactory.h b/Post/PViewFactory.h
index 000b26cff1..35ce359d09 100644
--- a/Post/PViewFactory.h
+++ b/Post/PViewFactory.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -15,9 +15,7 @@
 
 class GModel;
 class PView;
-template <class t>
-class fullMatrix;
-class binding;
+template <class t> class fullMatrix;
 
 class PViewFactory {
   std::map<int,std::vector<double> > _values;
@@ -25,10 +23,9 @@ class PViewFactory {
   int _dim,_timeStep;
   GModel *_model;
   public:
-  PViewFactory(std::string name, std::string type, GModel *model, int timeStep, int dim);
+  PViewFactory(std::string name, std::string type, GModel *model, int timeStep, int dim=3);
   void setEntry(int id, const fullMatrix<double> &val);
   PView *createView();
-  static void registerBindings(binding *);
 };
 
 #endif
diff --git a/Post/PViewIO.cpp b/Post/PViewIO.cpp
index 58211a8c5f..bbf502ff86 100644
--- a/Post/PViewIO.cpp
+++ b/Post/PViewIO.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewOptions.cpp b/Post/PViewOptions.cpp
index a19fafab52..c4db65e514 100644
--- a/Post/PViewOptions.cpp
+++ b/Post/PViewOptions.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewOptions.h b/Post/PViewOptions.h
index c391ad5117..0e33e2a59c 100644
--- a/Post/PViewOptions.h
+++ b/Post/PViewOptions.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/PViewVertexArrays.cpp b/Post/PViewVertexArrays.cpp
index f6e06bfc1f..0ac996ad4b 100644
--- a/Post/PViewVertexArrays.cpp
+++ b/Post/PViewVertexArrays.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -1170,9 +1170,9 @@ static void addElementsInArrays(PView *p, bool preprocessNormalsOnly)
         else {
           if(numNodesError != numNodes){
             numNodesError = numNodes;
-            Msg::Error("You should never draw views with > %d nodes per element: use",
+            Msg::Error("You should never draw views with > %d nodes per element: use"
+                       "'Adapt visualization grid' to view high-order datasets!",
                        PVIEW_NMAX);
-            Msg::Error("'Adapt visualization grid' to view high-order datasets!");
           }
           continue;
         }
@@ -1180,8 +1180,8 @@ static void addElementsInArrays(PView *p, bool preprocessNormalsOnly)
       if((numComp > 9 && !opt->forceNumComponents) || opt->forceNumComponents > 9){
         if(numCompError != numComp) {
           numCompError = numComp;
-          Msg::Error("You should never draw views with > 9 values per node: use");
-          Msg::Error("'Adapt visualization grid' to view high-order datasets!");
+          Msg::Error("You should never draw views with > 9 values per node: use"
+                     "'Adapt visualization grid' to view high-order datasets!");
         }
         continue;
       }
diff --git a/Post/adaptiveData.cpp b/Post/adaptiveData.cpp
index cb106d2357..029fd57484 100644
--- a/Post/adaptiveData.cpp
+++ b/Post/adaptiveData.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/adaptiveData.h b/Post/adaptiveData.h
index 30681650c1..ccc9a41009 100644
--- a/Post/adaptiveData.h
+++ b/Post/adaptiveData.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/shapeFunctions.cpp b/Post/shapeFunctions.cpp
index b2eaf9d446..1649454df3 100644
--- a/Post/shapeFunctions.cpp
+++ b/Post/shapeFunctions.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Post/shapeFunctions.h b/Post/shapeFunctions.h
index 2f8b6ebd36..94de178f37 100644
--- a/Post/shapeFunctions.h
+++ b/Post/shapeFunctions.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Qt/CMakeLists.txt b/Qt/CMakeLists.txt
index 8be7adfeb9..95496efb4d 100644
--- a/Qt/CMakeLists.txt
+++ b/Qt/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/Qt/Main.cpp b/Qt/Main.cpp
index ff0e246d28..bdddf17037 100644
--- a/Qt/Main.cpp
+++ b/Qt/Main.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Qt/QGui.cpp b/Qt/QGui.cpp
index 5118a963cc..48ab8daeae 100644
--- a/Qt/QGui.cpp
+++ b/Qt/QGui.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Qt/QGui.h b/Qt/QGui.h
index 532d40f970..76b1129c1d 100644
--- a/Qt/QGui.h
+++ b/Qt/QGui.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/README.txt b/README.txt
index dd44633b6f..466de3cd4e 100644
--- a/README.txt
+++ b/README.txt
@@ -2,8 +2,8 @@ This is Gmsh, an automatic three-dimensional finite element mesh
 generator with built-in pre- and post-processing facilities.
 
 Gmsh is distributed under the terms of the GNU General Public License,
-with an exception to allow for easier linking with external
-libraries. See doc/LICENSE.txt and doc/CREDITS.txt for more
+Version 2 or later, with an exception to allow for easier linking with
+external libraries. See doc/LICENSE.txt and doc/CREDITS.txt for more
 information.
 
 See the doc/ and tutorial/ directories for documentation. The
diff --git a/Solver/CMakeLists.txt b/Solver/CMakeLists.txt
index 467bfbb270..1a003c3749 100644
--- a/Solver/CMakeLists.txt
+++ b/Solver/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
@@ -15,7 +15,6 @@ set(SRC
   multiscaleLaplace.cpp
   function.cpp
   functionDerivator.cpp
-  luaFunction.cpp
   functionSpace.cpp
   filters.cpp
   sparsityPattern.cpp
diff --git a/Solver/SElement.h b/Solver/SElement.h
index 1416307902..f3ccfe29b5 100644
--- a/Solver/SElement.h
+++ b/Solver/SElement.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/crossConfTerm.h b/Solver/crossConfTerm.h
index 2f4dab63b0..8c2cf42d99 100644
--- a/Solver/crossConfTerm.h
+++ b/Solver/crossConfTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/distanceTerm.h b/Solver/distanceTerm.h
index b8f523e3f5..244d9c96dc 100644
--- a/Solver/distanceTerm.h
+++ b/Solver/distanceTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/dofManager.h b/Solver/dofManager.h
index 4d1530e07c..1057917135 100644
--- a/Solver/dofManager.h
+++ b/Solver/dofManager.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/eigenSolver.cpp b/Solver/eigenSolver.cpp
index dd791febce..4204fd25a8 100644
--- a/Solver/eigenSolver.cpp
+++ b/Solver/eigenSolver.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/eigenSolver.h b/Solver/eigenSolver.h
index 1224f39ced..7465fb1e19 100644
--- a/Solver/eigenSolver.h
+++ b/Solver/eigenSolver.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/elasticitySolver.cpp b/Solver/elasticitySolver.cpp
index 1fdd6715bd..5e610e4982 100644
--- a/Solver/elasticitySolver.cpp
+++ b/Solver/elasticitySolver.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -264,39 +264,6 @@ void elasticitySolver::readInputFile(const std::string &fn)
 }
 
 
-#if defined (HAVE_LUA)
-
-void elasticitySolver::addDirichletBCLua (int dim, int entityId, int component, std::string luaFunctionName, lua_State *L) {
-  dirichletBC diri;
-  diri.g = new groupOfElements (dim, entityId);
-  diri._f= new simpleFunctionLua<double>(L, luaFunctionName,0.);
-  diri._comp=component;
-  diri._tag=entityId;
-  switch (dim) {
-    case 0 : diri.onWhat=BoundaryCondition::ON_VERTEX; break;
-    case 1 : diri.onWhat=BoundaryCondition::ON_EDGE; break;
-    case 2 : diri.onWhat=BoundaryCondition::ON_FACE; break;
-    default : return;
-  }
-  allDirichlet.push_back(diri);
-}
-
-void elasticitySolver::addNeumannBCLua (int dim, int entityId, std::string luaFunctionName, lua_State *L) {
-  neumannBC neu;
-  neu.g = new groupOfElements (dim, entityId);
-  neu._f= new simpleFunctionLua<SVector3>(L, luaFunctionName, SVector3(0,0,0));
-  neu._tag=entityId;
-  switch (dim) {
-    case 0 : neu.onWhat=BoundaryCondition::ON_VERTEX; break;
-    case 1 : neu.onWhat=BoundaryCondition::ON_EDGE; break;
-    case 2 : neu.onWhat=BoundaryCondition::ON_FACE; break;
-    default : return;
-  }
-  allNeumann.push_back(neu);
-}
-
-#endif
-
 void elasticitySolver::addDirichletBC (int dim, int entityId, int component, double value) {
   dirichletBC diri;
   diri.g = new groupOfElements (dim, entityId);
@@ -721,80 +688,3 @@ PView* elasticitySolver::buildStressesView (const std::string postFileName)
   return 0;
 }
 #endif
-
-
-
-#include "Bindings.h"
-void elasticitySolverRegisterBindings(binding *b)
-{
-#if defined (HAVE_LUA)
-  classBinding *cb;
-  cb = b->addClass<elasticitySolver> ("elasticitySolver");
-  cb->setDescription("A class that enables to solve elasticity problems");
-
-  methodBinding *cm;
-  cm = cb->addMethod("read", &elasticitySolver::read);
-  cm->setDescription ("reads an input file");
-  cm->setArgNames("fileName",NULL);
-
-  cm = cb->addMethod("postSolve", &elasticitySolver::postSolve);
-  cm->setDescription (" ");
-
-  cm = cb->addMethod("assemble", &elasticitySolver::assemble);
-  cm->setDescription ("assembles the problem");
-  cm->setArgNames ("linearSystem",NULL);
-
-  cm = cb->addMethod("solve", &elasticitySolver::solve);
-  cm->setDescription ("solve the problem");
-  cm->setArgNames (NULL);
-
-  cm = cb->addMethod("addDirichletBC", &elasticitySolver::addDirichletBC);
-  cm->setDescription ("add a Dirichlet (displacement) boundary condition on a given entity");
-  cm->setArgNames ("dim", "entityId", "component", "value", NULL);
-
-  cm = cb->addMethod("addDirichletBCLua", &elasticitySolver::addDirichletBCLua);
-  cm->setDescription ("add a Dirichlet (displacement) boundary condition on a given entity. The lua function takes x,y,z as arguments and return the displacement value.");
-  cm->setArgNames ("dim", "entityId", "component", "luaFunctionName", NULL);
-
-  cm = cb->addMethod("addNeumannBC", &elasticitySolver::addNeumannBC);
-  cm->setDescription ("add a Neumann (force) boundary condition on a given entity. Size of value has to be 3.");
-  cm->setArgNames ("dim", "entityId", "value", NULL);
-
-  cm = cb->addMethod("addNeumannBCLua", &elasticitySolver::addNeumannBCLua);
-  cm->setDescription ("add a Neumann (force) boundary condition on a given entity. The lua function takes x,y,z as arguments and return a vector with the 3 components of the force.");
-  cm->setArgNames ("dim", "entityId", "luaFunctionName", NULL);
-
-  cm = cb->addMethod("addElasticDomain", &elasticitySolver::addElasticDomain);
-  cm->setDescription ("add an elastic region with parameters E and nu");
-  cm->setArgNames ("tag", "E", "nu", NULL);
-
-#if defined HAVE_POST
-
-  cm = cb->addMethod ("buildVonMisesView", &elasticitySolver::buildVonMisesView);
-  cm->setDescription ("create a new view.");
-  cm->setArgNames ("fileName", NULL);
-
-  cm = cb->addMethod ("buildDisplacementView", &elasticitySolver::buildDisplacementView);
-  cm->setDescription ("create a new view.");
-  cm->setArgNames ("fileName", NULL);
-
-  cm = cb->addMethod ("buildStressesView", &elasticitySolver::buildStressesView);
-  cm->setDescription ("create a new view.");
-  cm->setArgNames ("fileName", NULL);
-
-  cm = cb->addMethod ("buildLagrangeMultiplierView", &elasticitySolver::buildLagrangeMultiplierView);
-  cm->setDescription ("create a new view.");
-  cm->setArgNames ("fileName", NULL);
-
-  cm = cb->addMethod ("buildElasticEnergyView", &elasticitySolver::buildElasticEnergyView);
-  cm->setDescription ("create a new view.");
-  cm->setArgNames ("fileName", NULL);
-
-#endif
-
-  cm = cb->setConstructor<elasticitySolver,GModel*,int>();
-  cm->setDescription ("A new elasticitySolver. The parameter is the unknowns tag");
-  cm->setArgNames("model","tag",NULL);
-#endif
-}
-
diff --git a/Solver/elasticitySolver.h b/Solver/elasticitySolver.h
index 0866a5c05b..2155966b5a 100644
--- a/Solver/elasticitySolver.h
+++ b/Solver/elasticitySolver.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -82,13 +82,6 @@ class elasticitySolver
   void addNeumannBC (int dim, int entityId, const std::vector<double> value);
   void addElasticDomain (int tag, double e, double nu);
 
-#if defined (HAVE_LUA)
-
-  void addDirichletBCLua (int dim, int entityId, int component, std::string luaFunctionName, lua_State *L);
-  void addNeumannBCLua (int dim, int entityId, std::string luaFunctionName, lua_State *L);
-
-#endif
-
   virtual ~elasticitySolver()
   {
     if (LagSpace) delete LagSpace;
@@ -113,6 +106,4 @@ class elasticitySolver
   //   (const std::string &errorFileName, const elasticityData &ref, double, int);
 };
 
-class binding;
-void elasticitySolverRegisterBindings(binding *b);
 #endif
diff --git a/Solver/elasticityTerm.cpp b/Solver/elasticityTerm.cpp
index f03ec416ac..945c7c5f80 100644
--- a/Solver/elasticityTerm.cpp
+++ b/Solver/elasticityTerm.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/elasticityTerm.h b/Solver/elasticityTerm.h
index e167fd4a61..a3ded65def 100644
--- a/Solver/elasticityTerm.h
+++ b/Solver/elasticityTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/femTerm.h b/Solver/femTerm.h
index 15798e0ac5..49d6a70a6e 100644
--- a/Solver/femTerm.h
+++ b/Solver/femTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/function.cpp b/Solver/function.cpp
index 20dd036fae..1b9c32bd84 100644
--- a/Solver/function.cpp
+++ b/Solver/function.cpp
@@ -6,13 +6,11 @@
 #include "MElement.h"
 #include "GModel.h"
 #include "OS.h"
-#include "Bindings.h"
 
 #if defined(HAVE_DLOPEN)
 #include <dlfcn.h>
 #endif
 
-
 // function
 
 void function::addFunctionReplace(functionReplace &fr) 
@@ -703,33 +701,6 @@ class functionStructuredGridFile : public function {
   }
 };
 
-// functionLua
-
-#ifdef HAVE_LUA
-class functionLua : public function {
-  lua_State *_L;
-  std::string _luaFunctionName;
-  std::vector<fullMatrix<double> > args;
- public:
-  void call (dataCacheMap *m, fullMatrix<double> &res) 
-  {
-    lua_getfield(_L, LUA_GLOBALSINDEX, _luaFunctionName.c_str());
-    for (int i = 0; i < arguments.size(); i++)
-      luaStack<const fullMatrix<double>*>::push(_L, &args[i]);
-    luaStack<const fullMatrix<double>*>::push(_L, &res);
-    lua_call(_L, arguments.size()+1, 0);
-  }
-  functionLua (int nbCol, std::string luaFunctionName, 
-               std::vector<const function*> dependencies, lua_State *L)
-    : function(nbCol), _luaFunctionName(luaFunctionName), _L(L)
-  {
-    args.resize(dependencies.size());
-    for (int i = 0; i < dependencies.size(); i++)
-      setArgument(args[i], dependencies[i]);
-  }
-};
-#endif
-
 // functionC
 void functionC::buildLibraryFromFile(const std::string cfilename, const std::string libfilename) {
   FILE *tmpMake = fopen("_tmpMake", "w");
@@ -813,120 +784,3 @@ functionC::functionC (std::string file, std::string symbol, int nbCol,
   Msg::Error("Cannot construct functionC without dlopen");
 #endif
 }
-
-
-void function::registerBindings(binding *b)
-{
-  classBinding *cb = b->addClass<function>("Function");
-  cb->setDescription("A generic function that can be evaluated on a set of points. "
-                     "Functions can call other functions and their values are cached "
-                     "so that if two different functions call the same function f, "
-                     "f is only evaluated once.");
-  methodBinding *mb;
-
-  mb = cb->addMethod("getTime", &function::getTime);
-  mb->setDescription("Return function constant in space which contains the time value");
-
-  cb = b->addClass<functionConstant>("functionConstant");
-  cb->setDescription("A constant (scalar or vector) function");
-  mb = cb->setConstructor<functionConstant, std::vector <double> >();
-  mb->setArgNames("v", NULL);
-  mb->setDescription("A new constant function wich values 'v' everywhere. v can be a row-vector.");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionSum>("functionSum");
-  cb->setDescription("A sum of two functions 'a + b'. The arguments a, b must have same dimension.");
-  mb = cb->setConstructor<functionSum, const function*, const function*>();
-  mb->setArgNames("a", "b", NULL);
-  mb->setDescription("Creates a new functionSum instance with given arguments");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionProd>("functionProd");
-  cb->setDescription("A pointwise product of two functions 'a(i,j)*b(i,j)'. The arguments a, b must have same dimension.");
-  mb = cb->setConstructor<functionProd, const function*, const function*>();
-  mb->setArgNames("a", "b", NULL);
-  mb->setDescription("Creates a new functionProd instance with given arguments");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionExtractComp>("functionExtractComp");
-  cb->setDescription("Extracts a given component of the vector valued function.");
-  mb = cb->setConstructor<functionExtractComp, const function*, int>();
-  mb->setArgNames("function","component", NULL);
-  mb->setDescription("Creates a new functionExtractComp instance with given arguments");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionCatComp>("functionCatComp");
-  cb->setDescription("Creates a vector valued function by concatenating the given scalar functions. Uses only the first component of each function.");
-  mb = cb->setConstructor<functionCatComp, std::vector <const function*> >();
-  mb->setArgNames("functionArray", NULL);
-  mb->setDescription("Creates a new functionCatComp instance with given arguments");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionScale>("functionScale");
-  cb->setDescription("Scales a function by a given scalar.");
-  mb = cb->setConstructor<functionScale, const function*, double>();
-  mb->setArgNames("function","scalar", NULL);
-  mb->setDescription("Creates a new functionScale instance with given arguments");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionCoordinates>("functionCoordinates");
-  cb->setDescription("A function to access the coordinates (xyz). This is a "
-                     "single-instance class, use the 'get' member to access the instance.");
-  mb = cb->addMethod("get", &functionCoordinates::get);
-  mb->setDescription("return the unique instance of this class");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionSolution>("functionSolution");
-  cb->setDescription("A function to access the solution. This is a single-instance "
-                     "class, use the 'get' member to access the instance.");
-  mb = cb->addMethod("get", &functionSolution::get);
-  mb->setDescription("return the unique instance of this class");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionNormals>("functionNormals");
-  cb->setDescription("A function to access the face normals. This is a single-instance "
-                     "class, use the 'get' member to access the instance.");
-  mb = cb->addMethod("get", &functionNormals::get);
-  mb->setDescription("return the unique instance of this class");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionSolutionGradient>("functionSolutionGradient");
-  cb->setDescription("A function to access the gradient of the solution. This is "
-                     "a single-instance class, use the 'get' member to access the instance.");
-  mb = cb->addMethod("get", &functionCoordinates::get);
-  mb->setDescription("return the unique instance of this class");
-  cb->setParentClass<function>();
-
-  cb = b->addClass<functionStructuredGridFile>("functionStructuredGridFile");
-  cb->setParentClass<function>();
-  cb->setDescription("A function to interpolate through data given on a structured grid");
-  mb = cb->setConstructor<functionStructuredGridFile, std::string, const function*>();
-  mb->setArgNames("fileName","coordinateFunction",NULL);
-  mb->setDescription("Tri-linearly interpolate through data in file 'fileName' at "
-                     "coordinate given by 'coordinateFunction'.\nThe file format "
-                     "is :\nx0 y0 z0\ndx dy dz\nnx ny nz\nv(0,0,0) v(0,0,1) v(0 0 2) ...");
-
-#if defined(HAVE_DLOPEN)
-  cb = b->addClass<functionC>("functionC");
-  cb->setDescription("A function that compile a C code");
-  mb = cb->setConstructor<functionC, std::string, std::string, int, std::vector<const function*> >();
-  mb->setArgNames("file", "symbol", "nbCol", "arguments", NULL);
-  mb->setDescription("  ");
-  mb = cb->addMethod("buildLibrary", &functionC::buildLibrary);
-  mb->setArgNames("code", "libraryFileName", NULL);
-  mb->setDescription("build a dynamic library from the given code");
-  cb->setParentClass<function>();
-#endif
-
-#if defined (HAVE_LUA)
-  cb= b->addClass<functionLua>("functionLua");
-  cb->setDescription("A function (see the 'function' documentation entry) defined in LUA.");
-  mb = cb->setConstructor<functionLua, int, std::string, std::vector<const function*>, lua_State*>();
-  mb->setArgNames("d", "f", "dep", NULL);
-  mb->setDescription("A new functionLua which evaluates a vector of dimension 'd' "
-                     "using the lua function 'f'. This function can take other functions "
-                     "as arguments listed by the 'dep' vector.");
-  cb->setParentClass<function>();
-#endif
-}
-
diff --git a/Solver/function.h b/Solver/function.h
index 407de16ea2..dbf0537343 100644
--- a/Solver/function.h
+++ b/Solver/function.h
@@ -16,7 +16,6 @@ class functionConstant;
 class functionReplace;
 class functionReplaceCache;
 class MElement;
-class binding;
 
 // An abstract interface to functions
 class function {
@@ -82,9 +81,6 @@ class function {
          it != dependencies.end(); it++)
       printf("%i %p\n", it->iMap, it->f);
   }
-
-  // bindings
-  static void registerBindings(binding *b);
 };
 
 
diff --git a/Solver/helmholtzTerm.h b/Solver/helmholtzTerm.h
index da781d22f5..ae03f491d4 100644
--- a/Solver/helmholtzTerm.h
+++ b/Solver/helmholtzTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/laplaceTerm.h b/Solver/laplaceTerm.h
index c1124a851e..3f38d65853 100644
--- a/Solver/laplaceTerm.h
+++ b/Solver/laplaceTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/linearSystem.cpp b/Solver/linearSystem.cpp
index 7c271733ad..de4e29dad0 100644
--- a/Solver/linearSystem.cpp
+++ b/Solver/linearSystem.cpp
@@ -1,53 +1,14 @@
-#include "GmshConfig.h"
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
+//
+// See the LICENSE.txt file for license information. Please report all
+// bugs and problems to <gmsh@geuz.org>.
+
 #include "linearSystemFull.h"
 #include "linearSystemCSR.h"
 #include "linearSystemGMM.h"
 
-#include "Bindings.h"
-
-void linearSystemBase::registerBindings(binding *b){
-  methodBinding *cm;
-  classBinding *cb = b->addClass<linearSystemBase>("linearSystemBase");
-  cb->setDescription("Base class for linear systems");
-  cm = cb->addMethod("setParameter", &linearSystemBase::setParameter);
-  cm->setDescription("set linearSystem parameters");
-  cm->setArgNames("key","value",NULL);
-  
-  cb = b->addClass<linearSystem<double> >("linearSystemDouble");
-  cb->setDescription("An abstraction of a linear system Ax = b.");
-  cm = cb->addMethod("systemSolve", &linearSystem<double>::systemSolve);
-  cm->setDescription("compute x = A^{-1}b");
-  cb->setParentClass<linearSystemBase>();
-  
-#ifdef HAVE_TAUCS
-  cb = b->addClass<linearSystemCSRTaucs<double> >("linearSystemCSRTaucs");
-  cb->setDescription("A linear system solver, based on TAUCS, and that is ok for SDP sparse matrices.");
-  cm = cb->setConstructor<linearSystemCSRTaucs<double> >();
-  cm->setDescription ("A new TAUCS<double> solver");
-  cm->setArgNames(NULL);
-  cm = cb->addMethod("getNNZ", &linearSystemCSRTaucs<double>::getNNZ);
-  cm->setDescription("get the number of non zero entries");
-  cm = cb->addMethod("getNbUnk", &linearSystemCSRTaucs<double>::getNbUnk);
-  cm->setDescription("get the number of unknowns");
-
-  cb->setParentClass<linearSystem<double> >();
-#endif
-
-  cb = b->addClass<linearSystemFull<double> >("linearSystemFull");
-  cb->setDescription("A linear system solver, based on LAPACK (full matrices)");
-  cm = cb->setConstructor<linearSystemFull<double> >();
-  cm->setDescription ("A new Lapack based <double> solver");
-  cm->setArgNames(NULL);
-  cb->setParentClass<linearSystem<double> >();
-  // block
-  cb = b->addClass<linearSystem<fullMatrix<double> > >("linearSystemFullMatrixDouble");
-  cb->setDescription("An abstraction of a linear system Ax = b.");
-  cm = cb->addMethod("systemSolve", &linearSystem<fullMatrix<double> >::systemSolve);
-  cm->setDescription("compute x = A^{-1}b");
-  cb->setParentClass<linearSystemBase>();
-}
-
-void linearSystemBase::setParameter (std::string key, std::string value) {
+void linearSystemBase::setParameter (std::string key, std::string value) 
+{
   if (isAllocated())
     Msg::Error("this system is already allocated, parameters cannot be set");
   _parameters[key] = value;
diff --git a/Solver/linearSystem.h b/Solver/linearSystem.h
index e5fc07f876..80767984ef 100644
--- a/Solver/linearSystem.h
+++ b/Solver/linearSystem.h
@@ -1,16 +1,16 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
 
 #ifndef _LINEAR_SYSTEM_H_
 #define _LINEAR_SYSTEM_H_
+
 #include <map>
 #include <string>
 
 // A class that encapsulates a linear system solver interface :
 // building a sparse matrix, solving a linear system
-class binding;
 class linearSystemBase {
   protected:
   std::map<std::string, std::string> _parameters;
@@ -23,7 +23,6 @@ class linearSystemBase {
   virtual int systemSolve() = 0;
   void setParameter (std::string key, std::string value);
   virtual void insertInSparsityPattern(int _row, int _col){};
-  static void registerBindings (binding*);
 };
 
 template <class scalar>
diff --git a/Solver/linearSystemCSR.cpp b/Solver/linearSystemCSR.cpp
index 8a06325f7d..5d9a2ee1b3 100644
--- a/Solver/linearSystemCSR.cpp
+++ b/Solver/linearSystemCSR.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -339,19 +339,6 @@ void linearSystemCSR<double>::getMatrix(INDEX_TYPE*& jptr,INDEX_TYPE*& ai,double
   sorted = true;
 }
 
-#include "Bindings.h"
-
-template<>
-  void linearSystemCSRGmm<double>::registerBindings(binding *b)
-  {
-    classBinding *cb = b->addClass< linearSystemCSRGmm<double> >("linearSystemCSRGmmdouble");
-    cb->setParentClass<linearSystem<double> >();
-    cb->setDescription("Sparse matrix representation.");
-    methodBinding *cm;
-    cm = cb->setConstructor<linearSystemCSRGmm<double> >();
-    cm->setDescription("Build an empty container");
-  }
-
 #if defined(HAVE_GMM)
 
 #include "gmm.h"
diff --git a/Solver/linearSystemCSR.h b/Solver/linearSystemCSR.h
index 661afc0b6c..5c40b1e1a1 100644
--- a/Solver/linearSystemCSR.h
+++ b/Solver/linearSystemCSR.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
@@ -12,8 +12,6 @@
 #include "linearSystem.h"
 #include "sparsityPattern.h"
 
-class binding;
-
 typedef int INDEX_TYPE ;
 typedef struct {
   int nmax;
@@ -179,7 +177,6 @@ class linearSystemCSRGmm : public linearSystemCSR<scalar> {
   }
 #endif
   ;
-  static void registerBindings(binding *b);
 };
 
 template <class scalar>
diff --git a/Solver/linearSystemFull.h b/Solver/linearSystemFull.h
index 01deac224f..0d6f4052ff 100644
--- a/Solver/linearSystemFull.h
+++ b/Solver/linearSystemFull.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/linearSystemGMM.h b/Solver/linearSystemGMM.h
index a1f1ca6f29..0b8da4a2e3 100644
--- a/Solver/linearSystemGMM.h
+++ b/Solver/linearSystemGMM.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/linearSystemPETSc.h b/Solver/linearSystemPETSc.h
index 9d2a528d0a..378548804b 100644
--- a/Solver/linearSystemPETSc.h
+++ b/Solver/linearSystemPETSc.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/luaFunction.cpp b/Solver/luaFunction.cpp
deleted file mode 100644
index afaa3f4100..0000000000
--- a/Solver/luaFunction.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#define _FUNCTION_LUA_H
-#include "luaFunction.h"
-#if defined(HAVE_LUA)
-#include <sstream>
-#include <string>
-#include <vector>
-#include "function.h"
-#include "Bindings.h"
-// function that is defined in Lua
-#endif // HAVE LUA
diff --git a/Solver/luaFunction.h b/Solver/luaFunction.h
deleted file mode 100644
index 6d4c68e591..0000000000
--- a/Solver/luaFunction.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#include "GmshConfig.h"
-#ifndef _LUA_FUNCTION_H_
-#define _LUA_FUNCTION_H_
-#if defined(HAVE_LUA)
-class binding;
-void functionLuaRegisterBindings(binding *b);
-#endif // HAVE LUA
-#endif // _LUA_FUNCTION_H_
diff --git a/Solver/orthogonalTerm.h b/Solver/orthogonalTerm.h
index 00c4cec530..37f003d2dd 100644
--- a/Solver/orthogonalTerm.h
+++ b/Solver/orthogonalTerm.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/sparsityPattern.cpp b/Solver/sparsityPattern.cpp
index a879201be3..6a12dd4e02 100644
--- a/Solver/sparsityPattern.cpp
+++ b/Solver/sparsityPattern.cpp
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/Solver/sparsityPattern.h b/Solver/sparsityPattern.h
index 4f826208db..4fe0a7807c 100644
--- a/Solver/sparsityPattern.h
+++ b/Solver/sparsityPattern.h
@@ -1,4 +1,4 @@
-// Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+// Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 //
 // See the LICENSE.txt file for license information. Please report all
 // bugs and problems to <gmsh@geuz.org>.
diff --git a/benchmarks/boolean/wikipedia.py b/benchmarks/boolean/wikipedia.py
index 3705487dee..50a436c5ee 100644
--- a/benchmarks/boolean/wikipedia.py
+++ b/benchmarks/boolean/wikipedia.py
@@ -31,6 +31,7 @@ myModel.computeBooleanDifference(myModel2);
 myModel.setAsCurrent();
 
 myModel.mesh(3);
+myModel.save("wikipedia.msh");
 
 #FlGui.instance();
 #FlGui.run();
diff --git a/benchmarks/extrude/u_shape_boundary_layer.geo b/benchmarks/extrude/u_shape_boundary_layer.geo
index 6b66c16d38..c256c0f452 100644
--- a/benchmarks/extrude/u_shape_boundary_layer.geo
+++ b/benchmarks/extrude/u_shape_boundary_layer.geo
@@ -27,4 +27,4 @@ Line(22) = {34, 31};
 Line(23) = {31, 32};
 Line Loop(24) = {22, 23, 20, 21};
 Line Loop(25) = {4, 12, 16, -18, 9, 8};
-//Plane Surface(26) = {24, 25};
+Plane Surface(26) = {24, 25};
diff --git a/contrib/ANN/CMakeLists.txt b/contrib/ANN/CMakeLists.txt
index ee78b5e7ae..af622f632e 100644
--- a/contrib/ANN/CMakeLists.txt
+++ b/contrib/ANN/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/Chaco/CMakeLists.txt b/contrib/Chaco/CMakeLists.txt
index 61fbf58ddf..5742fa91df 100644
--- a/contrib/Chaco/CMakeLists.txt
+++ b/contrib/Chaco/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/DiscreteIntegration/CMakeLists.txt b/contrib/DiscreteIntegration/CMakeLists.txt
index a26faa2c7a..d1af4a09f5 100644
--- a/contrib/DiscreteIntegration/CMakeLists.txt
+++ b/contrib/DiscreteIntegration/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/Fl_Tree/CMakeLists.txt b/contrib/Fl_Tree/CMakeLists.txt
index a4d3c14786..7c4ed9fcb8 100644
--- a/contrib/Fl_Tree/CMakeLists.txt
+++ b/contrib/Fl_Tree/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/MathEx/CMakeLists.txt b/contrib/MathEx/CMakeLists.txt
index f77f774b4b..d2e024fcc5 100644
--- a/contrib/MathEx/CMakeLists.txt
+++ b/contrib/MathEx/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/Metis/CMakeLists.txt b/contrib/Metis/CMakeLists.txt
index 99e165bc0c..55b048ffc7 100644
--- a/contrib/Metis/CMakeLists.txt
+++ b/contrib/Metis/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/NativeFileChooser/CMakeLists.txt b/contrib/NativeFileChooser/CMakeLists.txt
index 86a1d6e07a..077d971393 100644
--- a/contrib/NativeFileChooser/CMakeLists.txt
+++ b/contrib/NativeFileChooser/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/Netgen/CMakeLists.txt b/contrib/Netgen/CMakeLists.txt
index 966eff799e..c8e06366b8 100644
--- a/contrib/Netgen/CMakeLists.txt
+++ b/contrib/Netgen/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/Tetgen/CMakeLists.txt b/contrib/Tetgen/CMakeLists.txt
index 52a24fba3f..9e8ba362a5 100644
--- a/contrib/Tetgen/CMakeLists.txt
+++ b/contrib/Tetgen/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/TetgenNew/CMakeLists.txt b/contrib/TetgenNew/CMakeLists.txt
index 1293041291..71002df51a 100644
--- a/contrib/TetgenNew/CMakeLists.txt
+++ b/contrib/TetgenNew/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/bamg/CMakeLists.txt b/contrib/bamg/CMakeLists.txt
index b17d30a49b..1f5397c1b1 100644
--- a/contrib/bamg/CMakeLists.txt
+++ b/contrib/bamg/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/bamg/bamglib/MeshRead.cpp b/contrib/bamg/bamglib/MeshRead.cpp
index ade1afb6c1..6c880f12a5 100644
--- a/contrib/bamg/bamglib/MeshRead.cpp
+++ b/contrib/bamg/bamglib/MeshRead.cpp
@@ -896,7 +896,7 @@ Triangles::Triangles(const char * filename,Real8 cutoffradian)
     else if (ftq) Read_ftq(f_in);
     else 
       { 
-	cerr << " Unkown type mesh " << filename << endl;
+	cerr << " Unknown type mesh " << filename << endl;
 	MeshError(2);
       }
       ConsGeometry(cutoffradian);
diff --git a/contrib/bamg/bamglib/MeshWrite.cpp b/contrib/bamg/bamglib/MeshWrite.cpp
index 8547dea25b..475a2876c5 100644
--- a/contrib/bamg/bamglib/MeshWrite.cpp
+++ b/contrib/bamg/bamglib/MeshWrite.cpp
@@ -74,7 +74,7 @@ void Triangles::Write(const char * filename,const TypeFileMesh typein )
        case mshMesh    :  cout << " msh "      ; break;
 	default: 
 	  cerr << endl 
-	       <<  " Unkown type mesh file " << (int) type << " for Writing " << filename <<endl;
+	       <<  " Unknown type mesh file " << (int) type << " for Writing " << filename <<endl;
 	  MeshError(1);
        }     
      Int4 NbOfTria =  nbt-2*NbOfQuad-NbOutT ;
@@ -114,7 +114,7 @@ void Triangles::Write(const char * filename,const TypeFileMesh typein )
        case ftqMesh    :  Write_ftq(f)   ; break;
        case mshMesh    :  Write_msh(f)   ; break;
 	default: 
-	  cerr << " Unkown type mesh file " << (int) type << " for Writing " << filename <<endl;
+	  cerr << " Unknown type mesh file " << (int) type << " for Writing " << filename <<endl;
 	  MeshError(1);
        }
    else
diff --git a/contrib/bamg/bamglib/Meshio.cpp b/contrib/bamg/bamglib/Meshio.cpp
index 6e7ac404e0..b75196eacc 100644
--- a/contrib/bamg/bamglib/Meshio.cpp
+++ b/contrib/bamg/bamglib/Meshio.cpp
@@ -30,7 +30,7 @@
 #include "Meshio.h"
 namespace bamg {
 
-const char *OFortranUnFormattedFile::unkown("unkown file name");
+const char *OFortranUnFormattedFile::unkown("unknown file name");
 void (*MeshIstreamErrorHandler)(ios & ) =0;
 ///////////////////////////////////////////////////////////
  void WriteStr(ostream & out,char * str)
@@ -335,7 +335,7 @@ void OFortranUnFormattedFile::Error(int err)
   else if (err==3)
     cerr<< "-- Erreur  write record info " ;
   else 
-    cerr << " unkown err " << err ;
+    cerr << " unknown err " << err ;
 
   cerr << " Record number = "    << nb_rec << endl
        << " read position  in file " << j << " < " << n 
@@ -358,7 +358,7 @@ void IFortranUnFormattedFile::Error(int err)
   else if (err==3)
     cerr<< " Erreur  read record info " ;
   else 
-    cerr << " unkown err " << err ;
+    cerr << " unknown err " << err ;
 
   cerr << " Record number = "    << nb_rec << endl
        << " read position  in file " << j << " < " << n 
diff --git a/contrib/kbipack/CMakeLists.txt b/contrib/kbipack/CMakeLists.txt
index 523dc33ff7..80b07193ef 100644
--- a/contrib/kbipack/CMakeLists.txt
+++ b/contrib/kbipack/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/mpeg_encode/CMakeLists.txt b/contrib/mpeg_encode/CMakeLists.txt
index 608772a679..9cda5448f7 100644
--- a/contrib/mpeg_encode/CMakeLists.txt
+++ b/contrib/mpeg_encode/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+# Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 #
 # See the LICENSE.txt file for license information. Please report all
 # bugs and problems to <gmsh@geuz.org>.
diff --git a/contrib/mpeg_encode/bsearch.cpp b/contrib/mpeg_encode/bsearch.cpp
index ecae2927cf..da8c8c6c8c 100644
--- a/contrib/mpeg_encode/bsearch.cpp
+++ b/contrib/mpeg_encode/bsearch.cpp
@@ -153,7 +153,7 @@ SetBSearchAlg(char *alg)
     } else if ( strcmp(alg, "EXHAUSTIVE") == 0 ) {
 	bsearchAlg = BSEARCH_EXHAUSTIVE;
     } else {
-	throw "Illegal bsearch algoritm";
+	throw "Illegal bsearch algorithm";
     }
 }
 
diff --git a/doc/gmsh.1 b/doc/gmsh.1
index 484384ddc0..11be90d524 100644
--- a/doc/gmsh.1
+++ b/doc/gmsh.1
@@ -124,9 +124,6 @@ parse input files, then exit.
 .B \-a, \-g, \-m, \-s, \-p
 start in automatic, geometry, mesh, solver or post-processing mode.
 .TP 4
-.B \-lua
-start an interactive lua session.
-.TP 4
 .B \-pid
 print pid on stdout.
 .TP 4
diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi
index 77a37b3546..5d28573056 100644
--- a/doc/texinfo/gmsh.texi
+++ b/doc/texinfo/gmsh.texi
@@ -1,5 +1,5 @@
 \input texinfo.tex @c -*-texinfo-*-
-@c Gmsh - Copyright (C) 1997-2010 C. Geuzaine, J.-F. Remacle
+@c Gmsh - Copyright (C) 1997-2011 C. Geuzaine, J.-F. Remacle
 @c
 @c See the LICENSE.txt file for license information. Please report all
 @c bugs and problems to <gmsh@geuz.org>.
@@ -920,8 +920,6 @@ Specify display
 Parse input files, then exit
 @item -a, -g, -m, -s, -p
 Start in automatic, geometry, mesh, solver or post-processing mode
-@item -lua
-Start an interactive lua session
 @item -pid
 Print pid on stdout
 @item -listen
-- 
GitLab