diff --git a/demo/src/couple.cc b/demo/src/couple.cc
index 9556ad72c9edf891c009e3651185a72349d2ff9b..68be9f3c73e32194a32d0f1298969d37e17bc4fa 100644
--- a/demo/src/couple.cc
+++ b/demo/src/couple.cc
@@ -107,8 +107,6 @@ private:
 class Identity : public AbstractFunction<double, double>
 {
 public:
-  MEMORY_MANAGED(Identity);
-
   Identity(int degree) : AbstractFunction<double, double>(degree) {}
 
   double operator()(const double& x) const 
diff --git a/demo/src/torus.cc b/demo/src/torus.cc
index 580fb7efcd2d34dd70112403e125605c9cf3c8b6..739152ef047f47a9b74251e94cbf3a4f4b212e97 100644
--- a/demo/src/torus.cc
+++ b/demo/src/torus.cc
@@ -142,7 +142,6 @@ int main(int argc, char* argv[])
 
 
   double rotation = M_PI/3.0;
-  int i, j;
   int dim = torus.getMesh()->getDim();
   int dow = Global::getGeo(WORLD);
 
@@ -152,30 +151,28 @@ int main(int argc, char* argv[])
   const FiniteElemSpace *feSpace = torus.getFESpace();
   const BasisFunction *basFcts = feSpace->getBasisFcts();
   int numBasFcts = basFcts->getNumber();
-  DegreeOfFreedom *localIndices = GET_MEMORY(DegreeOfFreedom, numBasFcts);
+  DegreeOfFreedom *localIndices = new DegreeOfFreedom[numBasFcts];
   DOFAdmin *admin = feSpace->getAdmin();
  
   WorldVector<DOFVector<double>*> parametricCoords;
-  for(i = 0; i < dow; i++) {
-    parametricCoords[i] = new DOFVector<double>(feSpace, 
-						"parametric coords");
-  }
+  for (int i = 0; i < dow; i++)
+    parametricCoords[i] = new DOFVector<double>(feSpace, "parametric coords");
 
   std::map<DegreeOfFreedom, bool> visited;
 
   TraverseStack stack;
   ElInfo *elInfo = stack.traverseFirst(torus.getMesh(), -1, 
 				       Mesh::CALL_LEAF_EL | Mesh::FILL_COORDS);
-  while(elInfo) {
+  while (elInfo) {
     basFcts->getLocalIndices(elInfo->getElement(), admin, localIndices);
-    for(i = 0; i < dim + 1; i++) {
+    for (int i = 0; i < dim + 1; i++) {
       dof = localIndices[i];
       x = elInfo->getCoord(i);
       YRotation::rotate(x, rotation);
-      if(!visited[dof]) {
-	for(j = 0; j < dow; j++) {
+      if (!visited[dof]) {
+	for (int j = 0; j < dow; j++)
 	  (*(parametricCoords[j]))[dof] = x[j];
-	}
+
 	visited[dof] = true;
       }
     }
@@ -192,16 +189,16 @@ int main(int argc, char* argv[])
   visited.clear();
   elInfo = stack.traverseFirst(torus.getMesh(), -1, 
 			       Mesh::CALL_LEAF_EL | Mesh::FILL_COORDS);
-  while(elInfo) {
+  while (elInfo) {
     basFcts->getLocalIndices(elInfo->getElement(), admin, localIndices);
-    for(i = 0; i < dim + 1; i++) {
+    for (int i = 0; i < dim + 1; i++) {
       dof = localIndices[i];
       x = elInfo->getCoord(i);
       YRotation::rotate(x, rotation);
-      if(!visited[dof]) {
-	for(j = 0; j < dow; j++) {
+      if (!visited[dof]) {
+	for (int j = 0; j < dow; j++)
 	  (*(parametricCoords[j]))[dof] = x[j];
-	}
+
 	visited[dof] = true;
       }
     }
@@ -214,7 +211,7 @@ int main(int argc, char* argv[])
 
   for(i = 0; i < dow; i++)
     delete parametricCoords[i];
-  FREE_MEMORY(localIndices, DegreeOfFreedom, numBasFcts);
+  delete [] localIndices;
 }