diff --git a/AMDiS/src/OEMSolver.h b/AMDiS/src/OEMSolver.h
index 5be6a9890911a45460d9826905a58c7d0b93a098..4e8ea2dba4ac05a5906c7d6639637edb1efb5874 100644
--- a/AMDiS/src/OEMSolver.h
+++ b/AMDiS/src/OEMSolver.h
@@ -100,7 +100,7 @@ namespace AMDiS {
     {
       FUNCNAME("OEMSolver::solveSystem()");
       TEST_EXIT(false)
-	("This linear solver is not suitable for sequentiell problems\n");
+	("This linear solver is not suitable for sequential problems\n");
       return -1;
     }
 
@@ -122,7 +122,7 @@ namespace AMDiS {
     { 
       FUNCNAME("OEMSolver::solveSystem()");
       TEST_EXIT(false)
-	("This linear solver is not suitable for domaindecomposition problems\n");
+	("This linear solver is not suitable for domain decomposition problems\n");
       return -1;
     }
 #endif
diff --git a/AMDiS/src/SurfaceAssembler.h b/AMDiS/src/SurfaceAssembler.h
index 3cceec165b897bff4dc460b33217364ecb59d0a5..61a23d3f7b7b8df7178d57140ae4c98b59d02da7 100644
--- a/AMDiS/src/SurfaceAssembler.h
+++ b/AMDiS/src/SurfaceAssembler.h
@@ -39,7 +39,7 @@ namespace AMDiS {
   class SurfaceAssembler : public Assembler
   {
   public:
-    /// Creates a SurfaceAssembler conforming to operat for the given \ref coords.
+    /// Creates a SurfaceAssembler conforming to operate for the given \ref coords.
     SurfaceAssembler(Operator *operat,
 		     const FiniteElemSpace *rowFeSpace,
 		     const FiniteElemSpace *colFeSpace,
diff --git a/AMDiS/src/ZeroOrderTerm.h b/AMDiS/src/ZeroOrderTerm.h
index 7c6016a5bfbef0fb652bf90190ff89d794e75d03..20088a8e50255173c592bfb29ada98a77e0934fb 100644
--- a/AMDiS/src/ZeroOrderTerm.h
+++ b/AMDiS/src/ZeroOrderTerm.h
@@ -104,7 +104,7 @@ namespace AMDiS {
 		     SubAssembler* subAssembler,
 		     Quadrature *quad = NULL);
 
-    /// Implementation of \ref OperatorTerm::initElement() for multilpe meshes.
+    /// Implementation of \ref OperatorTerm::initElement() for multiple meshes.
     void initElement(const ElInfo* smallElInfo,
 		     const ElInfo* largeElInfo,
 		     SubAssembler* subAssembler,
@@ -288,7 +288,7 @@ namespace AMDiS {
     void initElement(const ElInfo* elInfo, SubAssembler* subAssembler,
 		     Quadrature *quad = NULL);
 
-    /// Implements SecondOrderTerm::getC().
+    /// Implements ZeroOrderTerm::getC().
     void getC(const ElInfo *elInfo, int nPoints, ElementVector& C);
 
     /// Implements ZeroOrderTerm::eval().
@@ -456,7 +456,7 @@ namespace AMDiS {
     void initElement(const ElInfo* elInfo, SubAssembler* subAssembler,
 		     Quadrature *quad = NULL);
 
-    /// Implements SecondOrderTerm::getC().
+    /// Implements ZeroOrderTerm::getC().
     void getC(const ElInfo *elInfo, int nPoints, ElementVector& C);
 
     /// Implements ZeroOrderTerm::eval().
@@ -470,7 +470,7 @@ namespace AMDiS {
   protected:
     DOFVectorBase<double>* vec;
 
-    /// Function wich maps \ref gradAtQPs to a double.
+    /// Function which maps \ref gradAtQPs to a double.
     AbstractFunction<double, WorldVector<double> > *f;
 
     /** \brief
diff --git a/AMDiS/src/est/Estimator.h b/AMDiS/src/est/Estimator.h
index 10af9b43fffb3d93a3661cfd9a4aca217f1ee227..fddbcff0f770c511faa5d25b15a4974adc47105b 100644
--- a/AMDiS/src/est/Estimator.h
+++ b/AMDiS/src/est/Estimator.h
@@ -249,7 +249,7 @@ namespace AMDiS {
     double timestep;
 
     /** \brief
-     * Stores information about which mesh(es) must be travesed to estimate
+     * Stores information about which mesh(es) must be traversed to estimate
      * the error on the component matrices.
      */
     ComponentTraverseInfo traverseInfo;
diff --git a/AMDiS/src/io/FileWriter.cc b/AMDiS/src/io/FileWriter.cc
index 378762b7e31c106764b0812913ebbc2b58a94b13..381803f3bb251981e64b07645a5ff6ea2e56e81e 100644
--- a/AMDiS/src/io/FileWriter.cc
+++ b/AMDiS/src/io/FileWriter.cc
@@ -195,7 +195,7 @@ namespace AMDiS {
       ArhWriter::write(paraFilename + ".arh", feSpace->getMesh(), solutionVecs);
 #else    
     if (writeArhFormat)
-      ArhWriter::write(filename + ".arh", feSpace->getMesh(), solutionVecs);
+      ArhWriter::write(fn + ".arh", feSpace->getMesh(), solutionVecs);
 #endif
 
 
diff --git a/AMDiS/src/parallel/MeshDistributor.h b/AMDiS/src/parallel/MeshDistributor.h
index a5578de70339d10f4040aa2b5bef1f732bcc43da..dc7e766627d192a8940b65ce6c2873eb6ab0df87 100644
--- a/AMDiS/src/parallel/MeshDistributor.h
+++ b/AMDiS/src/parallel/MeshDistributor.h
@@ -196,9 +196,9 @@ namespace AMDiS {
      * This function must be used if the values of a DOFVector must be 
      * synchronised over all ranks. That means, that each rank sends the 
      * values of the DOFs, which are owned by the rank and lie on an interior 
-     * bounday, to all other ranks also having these DOFs.
+     * boundary, to all other ranks also having these DOFs.
      *
-     * This function must be used, for example, after the lineary system is 
+     * This function must be used, for example, after the linear system is
      * solved, or after the DOFVector is set by some user defined functions, 
      * e.g., initial solution functions.
      */    
@@ -348,7 +348,7 @@ namespace AMDiS {
 				    const FiniteElemSpace *feSpace);
 
   protected:
-    /// Creates an initial paritioning of the mesh.
+    /// Creates an initial partitioning of the mesh.
     void createInitialPartitioning();
 
     /// Set for each element on the partitioning level the number of 
diff --git a/AMDiS/src/parallel/MeshPartitioner.h b/AMDiS/src/parallel/MeshPartitioner.h
index 2401d1cd70532d14f81423299e88cc857bc63da8..56faada57d0a55f04b3f29884af7012be20f92ec 100644
--- a/AMDiS/src/parallel/MeshPartitioner.h
+++ b/AMDiS/src/parallel/MeshPartitioner.h
@@ -64,7 +64,7 @@ namespace AMDiS {
     virtual ~MeshPartitioner() {}
 
     /** \brief
-     * Creates an initial paritioning of the AMDiS mesh. This partitioning
+     * Creates an initial partitioning of the AMDiS mesh. This partitioning
      * can be arbitrary, the only requirement is that each macro element
      * must be uniquely assign to a rank.
      *
@@ -84,7 +84,7 @@ namespace AMDiS {
      *                           elements in this macro element.
      * \param[in]  mode          Most external partitioning libraries can make
      *                           a difference whether we want to create a
-     *                           first partitioning or we alread have created
+     *                           first partitioning or we already have created
      *                           one using this library but due to some mesh
      *                           adaptivity we want to repartition the mesh. In
      *                           the later case, the libraries also consider the
@@ -162,9 +162,9 @@ namespace AMDiS {
     /// The mesh partitioner can be used in to different modes, the standard
     /// mode and the so called "box partitioning". The standard mode assigns
     /// macro elements to ranks. If box partitioning is enabled, which makes
-    /// only sence if the macro mesh results from meshconv's "lego mesher",
+    /// only sense if the macro mesh results from meshconv's "lego mesher",
     /// then in 2D boxed (2 macro elements) and in 3D cubes (6 macro 
-    /// elements) are assigned as a uniion to ranks. 
+    /// elements) are assigned as a union to ranks.
     bool boxPartitioning;
 
     /// In box partitioning mode this map stores for each box number the set
@@ -188,7 +188,7 @@ namespace AMDiS {
     map<int, bool> elementInRank;
 
     /// Maps to each macro element index (or box index in box
-    /// partitiong mode) the rank number the element belongs to.
+    /// partitioning mode) the rank number the element belongs to.
     map<int, int> partitionMap;
 
     /// After mesh repartitioning these maps stores which elements are communicated
diff --git a/extensions/GradientCalculations.h b/extensions/GradientCalculations.h
index 37ce2b1ad6add5771934f4d7926397e8ed720de7..d68945d13403bbc412e6787edf76449f5ffe29ea 100644
--- a/extensions/GradientCalculations.h
+++ b/extensions/GradientCalculations.h
@@ -9,9 +9,16 @@ using namespace AMDiS;
 
 namespace experimental {
 
+/// Extended recovery gradient assuming mirror/point symmetry (pointSym=false/true)
+/// of the solution at domain boundaries
+
+/// --> Simon, es hat sich herausgestellt, dass meine ursprüngliche Version mit *nrm
+/// effizienter ist, da Speicher nur für einige Ausnahmeknoten belegt wird (ok, ist
+/// vielleicht etwas unübersichtlich)
+
   inline void getRecoveryGradientSym(const DOFVector<double> *u,
 				     DOFVector<WorldVector<double> > *result, 
-				     bool asym = true)
+				     bool pointSym = false)
   {
     FUNCNAME("getRecoveryGradientSym()");
     const FiniteElemSpace *feSpace = u->getFeSpace();
@@ -59,7 +66,7 @@ namespace experimental {
 	    WorldVector<double> n, rgrd;
 	    elInfo->getNormal(i, n);
 
-	    if (asym)
+	    if (pointSym)
 	      rgrd = grd;
 	    else
 	      rgrd = grd - 2.0*n*(grd*n); // reflect gradient at boundary
@@ -95,7 +102,7 @@ namespace experimental {
 	    u->getLocalVector(elInfo->getElement(), localUh);
 	    basFcts->evalGrdUh(bary, grdLambda, localUh, grd);
 
-	    if (asym)
+	    if (pointSym)
 	      rgrd= grd;
 	    else {
 	      n = 1.0/norm(nrm[localIndices[i]]) * nrm[localIndices[i]];
@@ -120,4 +127,4 @@ namespace experimental {
 
 } // end namespace experimental
 
-#endif // GRADIENT_CALCULATIONS_H
\ No newline at end of file
+#endif // GRADIENT_CALCULATIONS_H