Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp	(revision 46676)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.cpp	(revision 46677)
@@ -739,20 +739,27 @@
     , m_pool(UIIndicatorIndex_End)
 {
+    /* Prepare: */
+    prepare();
 }
 
 UIIndicatorsPool::~UIIndicatorsPool()
 {
-    for (int i = 0; i < m_pool.size(); ++i)
-    {
-        delete m_pool[i];
-        m_pool[i] = 0;
-    }
-    m_pool.clear();
+    /* Cleanup: */
+    cleanup();
 }
 
 QIStateIndicator* UIIndicatorsPool::indicator(UIIndicatorIndex index)
 {
-    if (!m_pool.at(index))
-    {
+    /* Just return what already exists: */
+    return m_pool[index];
+}
+
+void UIIndicatorsPool::prepare()
+{
+    /* Populate indicator-pool: */
+    for (int iIndex = 0; iIndex < UIIndicatorIndex_End; ++iIndex)
+    {
+        /* Prepare indicator: */
+        UIIndicatorIndex index = static_cast<UIIndicatorIndex>(iIndex);
         switch (index)
         {
@@ -770,6 +777,16 @@
         }
     }
-    return m_pool.at(index);
 }
 
+void UIIndicatorsPool::cleanup()
+{
+    /* Wipe-out indicator-pool: */
+    for (int iIndex = 0; iIndex < UIIndicatorIndex_End; ++iIndex)
+    {
+        /* Wipe-out indicator: */
+        delete m_pool[iIndex];
+        m_pool[iIndex] = 0;
+    }
+}
+
 #include "UIIndicatorsPool.moc"
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.h	(revision 46676)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIIndicatorsPool.h	(revision 46677)
@@ -58,4 +58,8 @@
 private:
 
+    /* Helpers: Prepare/cleanup stuff: */
+    void prepare();
+    void cleanup();
+
     /* Variables: */
     CSession &m_session;
