diff --git a/C++/basicClasses/ngData_class.cc b/C++/basicClasses/ngData_class.cc
index 8cc64ee70623c9a8617ef85cdbe0f61acb6487a2..d0104755dcd9ae481f14251a2d3b9a8c5ccb088c 100644
--- a/C++/basicClasses/ngData_class.cc
+++ b/C++/basicClasses/ngData_class.cc
@@ -112,6 +112,18 @@ void ngData_class<T, DIM_MESH>::generateMipsFromMesh(const shared_ptr<Coefficien
     }
     unsigned int el, ip;
 
+
+    VorB VorB;
+    if(DIM_MESH == intrule.Dim()){
+        VorB = VOL;
+    }
+    else if(DIM_MESH == intrule.Dim() + 1){
+        VorB = BND;
+    }
+    else if(DIM_MESH == intrule.Dim() + 2){
+        VorB = BBND;
+
+    }
     num = 0;
     mips.resize(mesh->GetNE());
     for(el = 0; el != mips.size(); ++el){
@@ -121,7 +133,7 @@ void ngData_class<T, DIM_MESH>::generateMipsFromMesh(const shared_ptr<Coefficien
 
         for (ip = 0;ip < intrule.GetNIP();ip++) {
             // MappedIntegrationPoint<DIM_MESH, DIM_MESH> mip((intrule)[ip], mesh->GetTrafo(el, global_alloc));
-            mips[el][ip] = { (intrule)[ip], mesh->GetTrafo(el, global_alloc) };
+            mips[el][ip] = { (intrule)[ip], mesh->GetTrafo(ElementId(VorB, el), global_alloc) };
 
             // mask
             if(ptrMask != nullptr && ptrMask->Evaluate(mips[el][0]) == 0){
@@ -132,6 +144,7 @@ void ngData_class<T, DIM_MESH>::generateMipsFromMesh(const shared_ptr<Coefficien
             ++num;
         }
     }
+    cout << num << " elements created" << endl;
 }
         
         // operators
diff --git a/python/myPackage.py b/python/myPackage.py
index 4d3b0b9017e11178cb6158c875bc83a9f6f3029a..f2986f8a5877767fa53a32e802dd88a4cafe8d4e 100644
--- a/python/myPackage.py
+++ b/python/myPackage.py
@@ -1815,7 +1815,7 @@ class Draw1d:
         #     self.fig, self.ax = plt.figure(self.fig_nr, figsize=[16, 5]) 
 
 
-        if type(self.ax_pos) != type(None):
+        if self.ax == None and type(self.ax_pos) != type(None):
             self.ax = plt.subplot(self.ax_pos[0], self.ax_pos[1], self.ax_pos[2])
 
         if self.clear: