diff --git a/ui5/eve7/controller/GL.controller.js b/ui5/eve7/controller/GL.controller.js
index 5fdda58eea1832219d9e2ab6fcbb612e358bcf3f..1e122e5191e3aef286c07a79b196b0c6dc32deef 100644
--- a/ui5/eve7/controller/GL.controller.js
+++ b/ui5/eve7/controller/GL.controller.js
@@ -49,11 +49,9 @@ sap.ui.define([
       {
          let args = oEvent.getParameter("arguments");
 
-         console.log('ON MATCHED', args.viewName);
-
-         console.log('MORE DATA', JSROOT.$eve7tmp);
-
-         console.log('COMPONENT DATA', Component.getOwnerComponentFor(this.getView()).getComponentData());
+         // console.log('ON MATCHED', args.viewName);
+         // console.log('MORE DATA', JSROOT.$eve7tmp);
+         // console.log('COMPONENT DATA', Component.getOwnerComponentFor(this.getView()).getComponentData());
 
          this.setupManagerAndViewType(Component.getOwnerComponentFor(this.getView()).getComponentData(),
                                       args.viewName, JSROOT.$eve7tmp);
@@ -66,6 +64,13 @@ sap.ui.define([
       // Initialization that can be done immediately onInit or later through UI5 bootstrap callbacks.
       setupManagerAndViewType: function(data, viewName, moredata)
       {
+         delete this.standalone;
+         delete this.viewer_class;
+         if (this.viewer) {
+            this.viewer.cleanup();
+            delete this.viewer;
+         }
+
          if (viewName)
          {
             data.standalone = viewName;
@@ -80,7 +85,6 @@ sap.ui.define([
             this.eveViewerId  = moredata.eveViewerId;
             this.kind       = moredata.kind;
             this.standalone = viewName;
-
             this.checkViewReady();
          }
          else if (data.standalone && data.conn_handle)
@@ -212,10 +216,18 @@ sap.ui.define([
 
       redrawScenes: function()
       {
+         if (!this.created_scenes) return;
+
          for (let s of this.created_scenes)
-         {
             s.redrawScene();
-         }
+      },
+
+      removeScenes: function() {
+         if (!this.created_scenes) return;
+
+         for (let s of this.created_scenes)
+            s.removeScene();
+         delete this.created_scenes;
       },
 
       /// invoked from ResizeHandler
diff --git a/ui5/eve7/lib/EveScene.js b/ui5/eve7/lib/EveScene.js
index c34ed893ba7b10543b29c6b0b6e22ea05cb88a0c..b310911dbe58ef336ca19bff47ff819d1e5e3960 100644
--- a/ui5/eve7/lib/EveScene.js
+++ b/ui5/eve7/lib/EveScene.js
@@ -122,7 +122,7 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function(EveManager) {
    /** method insert all objects into three.js container */
    EveScene.prototype.redrawScene = function()
    {
-      if ( ! this.glctrl) return;
+      if (!this.glctrl) return;
 
       let res3d = this.create3DObjects(true);
       if ( ! res3d.length && this.first_time) return;
@@ -140,6 +140,17 @@ sap.ui.define(['rootui5/eve7/lib/EveManager'], function(EveManager) {
       this.first_time = false;
    }
 
+   EveScene.prototype.removeScene = function()
+   {
+      if (!this.glctrl) return;
+
+      let cont = this.glctrl.getSceneContainer("scene" + this.id);
+      while (cont.children.length > 0)
+         cont.remove(cont.children[0]);
+
+      this.first_time = true;
+   }
+
    EveScene.prototype.update3DObjectsVisibility = function(arr, all_ancestor_children_visible)
    {
       if (!arr) return;
diff --git a/ui5/eve7/lib/GlViewer.js b/ui5/eve7/lib/GlViewer.js
index 2a0a6dfff640e125633c8414f94ebcb271109648..c8c504af203b8e22bec62d0a1b055b348345dd2f 100644
--- a/ui5/eve7/lib/GlViewer.js
+++ b/ui5/eve7/lib/GlViewer.js
@@ -6,20 +6,26 @@ sap.ui.define([], function() {
    {
       this.viewer_class = viewer_class;
 
-      console.log(this.get_name() + " - constructor");
+      // console.log(this.get_name() + " - constructor");
    };
 
    GlViewer.prototype = {
 
       init: function(controller)
       {
-         console.log(this.get_name() + ".init()");
+         // console.log(this.get_name() + ".init()");
 
          if (this.controller) throw new Error(this.get_name() + "already initialized.");
 
          this.controller = controller;
       },
 
+      cleanup: function()
+      {
+         // console.log(this.get_name() + ".cleanup()");
+         delete this.controller;
+      },
+
       //==============================================================================
 
       get_name:   function() { return "EVE.GlViewer" + this.viewer_class; },
diff --git a/ui5/eve7/lib/GlViewerThree.js b/ui5/eve7/lib/GlViewerThree.js
index 3f16fbb78d7c35488cb5dae9a357dc196d7354bd..5fbb18c0f4eb2eb9929f9a2a777c34d14e6fffa5 100644
--- a/ui5/eve7/lib/GlViewerThree.js
+++ b/ui5/eve7/lib/GlViewerThree.js
@@ -55,6 +55,13 @@ sap.ui.define([
          this.controller.glViewerInitDone();
       },
 
+      cleanup: function() {
+         if (this.controller) this.controller.removeScenes();
+         this.destroyThreejsRenderer();
+         GlViewer.prototype.cleanup.call(this);
+      },
+
+
       //==============================================================================
 
       make_object: function(name) {
@@ -70,10 +77,9 @@ sap.ui.define([
       //==============================================================================
 
       createThreejsRenderer: function() {
-         var w = this.get_width();
-         var h = this.get_height();
+         var w = this.get_width(), h = this.get_height();
 
-         // console.log("createThreejsRenderer", this.kind, "w=", w, "h=", h);
+         // console.log("createThreejsRenderer", this.controller.kind, "w=", w, "h=", h);
 
          this.scene = new THREE.Scene();
          // this.scene.fog = new THREE.FogExp2( 0xaaaaaa, 0.05 );
@@ -137,6 +143,15 @@ sap.ui.define([
          this.composer.addPass(this.fxaa_pass);
       },
 
+      destroyThreejsRenderer: function() {
+         if (this.renderer)
+            this.get_view().getDomRef().removeChild(this.renderer.domElement);
+
+         delete this.renderer;
+         delete this.scene;
+         delete this.composer;
+      },
+
       setupThreejsDomAndEventHandlers: function() {
          this.get_view().getDomRef().appendChild(this.renderer.domElement);
 
@@ -449,8 +464,7 @@ sap.ui.define([
             this.ttip.style.top = null;
          }
 
-         // show tooltip only in static mode
-         if (this.handle.kind != "file") this.ttip.style.display = "block";
+         this.ttip.style.display = "block";
       },
       remoteToolTip: function(msg) {
          this.ttip_text.innerHTML = msg;