diff --git a/multiscreen-compositor/qml/IviChrome.qml b/multiscreen-compositor/qml/IviChrome.qml
index d3aba364ed364f2e9180c4bc8c9e033a27856def..3bc92f5b2da375bdb39cfca38448a481ec1bf032 100644
--- a/multiscreen-compositor/qml/IviChrome.qml
+++ b/multiscreen-compositor/qml/IviChrome.qml
@@ -71,6 +71,4 @@ Item {
         shellSurface.sendConfigure(Qt.size(width, height));
     }
 
-
-
 }
diff --git a/multiscreen-compositor/qml/main.qml b/multiscreen-compositor/qml/main.qml
index d2d894fd6da64e82a7bb50913adc64fcbacd9a4c..273409bbcce4ca82f7609eddbb2f1f0be9d32b13 100644
--- a/multiscreen-compositor/qml/main.qml
+++ b/multiscreen-compositor/qml/main.qml
@@ -109,6 +109,8 @@ WaylandCompositor {
 
     IviApplication {
         onIviSurfaceCreated: handleIviSurfaceCreated(iviSurface)
+        //onIviSurfaceRequested: handleIviSurfaceRequested(surface, iviId, resource)
+        onIviSurfaceRequested: console.log("IVI surface requested: surface", surface, "iviId", iviId, "resource", resource);
     }
 
     // =============================================
@@ -242,6 +244,12 @@ WaylandCompositor {
         var surfaceOnScreen = ({ 'surface': item, 'screen': screenId });
         activeSurfaces.push(surfaceOnScreen);
         freezeIviId(iviSurface.iviId, screenId);
+        cleanUpFreezer();
+    }
+
+    function handleIviSurfaceRequested(surface, iviId, resource)
+    {
+        console.log("IVI surface requested: surface", surface, "iviId", iviId, "resource", resource);
     }
 
     function freezeIviId(iviId, screen)
@@ -250,6 +258,27 @@ WaylandCompositor {
         frozenSurfaceIds.push(frozenSurface);
     }
 
+    function cleanUpFreezer()
+    {
+        for (var i=0; i < frozenSurfaceIds.length; i++)
+        {
+            var iviId = frozenSurfaceIds[i].id;
+            var surfaceFound = false;
+            console.log("inspecting frozen iviId", iviId);
+            for (var j=0; j < activeSurfaces.length; j++)
+            {
+                if (iviId === activeSurfaces[j].surface.shellSurface.iviId)
+                    surfaceFound = true;
+            }
+
+            if (!surfaceFound)
+            {
+                console.log("no surface found for iviId", iviId);
+                frozenSurfaceIds = Array.from(frozenSurfaceIds).filter((e, idx) => e.id !== iviId)
+            }
+        }
+    }
+
     function cleanUpApplist()
     {
         for (var i=0; i < activeSurfaces.length; i++) {
@@ -267,6 +296,7 @@ WaylandCompositor {
     // =============================================
     onSurfaceAboutToBeDestroyed: {
         cleanUpApplist();
+        //cleanUpFreezer();
     }
 
     // =============================================