diff --git a/Sankore_3.1.pro b/Sankore_3.1.pro
index c08d5dec..ce2ac094 100644
--- a/Sankore_3.1.pro
+++ b/Sankore_3.1.pro
@@ -11,7 +11,7 @@ CONFIG += debug_and_release \
 VERSION_MAJ = 2
 VERSION_MIN = 00 
 VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error
-VERSION_PATCH = 05
+VERSION_PATCH = 06
 
 VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}"
 VERSION = $$replace(VERSION, "\\.r", "")
diff --git a/plugins/cffadaptor/src/UBCFFAdaptor.cpp b/plugins/cffadaptor/src/UBCFFAdaptor.cpp
index 68ec3ff9..10a8aca5 100644
--- a/plugins/cffadaptor/src/UBCFFAdaptor.cpp
+++ b/plugins/cffadaptor/src/UBCFFAdaptor.cpp
@@ -858,7 +858,7 @@ bool UBCFFAdaptor::UBToCFFConverter::itIsSupportedFormat(const QString &format)
 
     QStringList tsl = format.split(".", QString::SkipEmptyParts);
     if (0 < tsl.count())
-        bRet = cffSupportedFileFormats.contains(tsl.at(tsl.count()-1));       
+        bRet = cffSupportedFileFormats.contains(tsl.at(tsl.count()-1).toLower());       
     else
         bRet = false;
 
diff --git a/resources/library/applications/Sel video.wgt/css/main.css b/resources/library/applications/Sel video.wgt/css/main.css
index 63b2c7b5..43d6ee71 100644
--- a/resources/library/applications/Sel video.wgt/css/main.css	
+++ b/resources/library/applications/Sel video.wgt/css/main.css	
@@ -1,7 +1,6 @@
 
 body{
-    margin-top:10px;
-    margin-left:10px;
+	margin: 0;
     font-family:Arial, Sans-serif;
     font-size:15px;
     color:#444;
@@ -104,7 +103,6 @@ body{
 }
 
 #embeded-content{
-    border:1px solid rgb(230,230,230);
     position:relative;
     z-index:3;
     float:left;
diff --git a/resources/library/applications/Sel video.wgt/index.html b/resources/library/applications/Sel video.wgt/index.html
index e7a51830..752b7f58 100644
--- a/resources/library/applications/Sel video.wgt/index.html	
+++ b/resources/library/applications/Sel video.wgt/index.html	
@@ -143,7 +143,7 @@
                             top:($("#embeded-content").children(":first").height()-35)/2
                         });
 										
-                        adaptWidgetSize(5, 13);					
+                        adaptWidgetSize(3, 0);					
                         return false;
                     };
 				
diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp
index 483e955b..9dab0121 100644
--- a/src/board/UBBoardView.cpp
+++ b/src/board/UBBoardView.cpp
@@ -55,6 +55,8 @@
 
 #include "document/UBDocumentProxy.h"
 
+#include "tools/UBGraphicsRuler.h"
+#include "tools/UBGraphicsCurtainItem.h"
 #include "tools/UBGraphicsCompass.h"
 #include "tools/UBGraphicsCache.h"
 #include "tools/UBGraphicsTriangle.h"
@@ -433,6 +435,15 @@ bool UBBoardView::itemHaveParentWithType(QGraphicsItem *item, int type)
     return itemHaveParentWithType(item->parentItem(), type);
 
 }
+bool UBBoardView::isUBItem(QGraphicsItem *item)
+{
+    if ((UBGraphicsItemType::UserTypesCount > item->type()) && (item->type() > QGraphicsItem::UserType))
+        return true;
+    else
+    {
+        return false;
+    }
+}
 
 void UBBoardView::handleItemsSelection(QGraphicsItem *item)
 {
@@ -504,6 +515,13 @@ Here we determines cases when items should to get mouse press event at pressing
 
     switch(item->type())
     {
+    case UBGraphicsProtractor::Type:
+    case UBGraphicsRuler::Type:
+    case UBGraphicsTriangle::Type:
+    case UBGraphicsCompass::Type:
+    case UBGraphicsCache::Type:
+        return true;
+
     case UBGraphicsDelegateFrame::Type:
     case QGraphicsSvgItem::Type:
         return true;
@@ -533,7 +551,12 @@ Here we determines cases when items should to get mouse press event at pressing
         return false;
         break;
 
+    case UBToolWidget::Type:
+        return true;
+
     case QGraphicsWebView::Type:
+        return true;
+
     case UBGraphicsWidgetItem::Type:
         if (currentTool == UBStylusTool::Selector && item->parentItem() && item->parentItem()->isSelected()) 
             return true;
@@ -541,10 +564,11 @@ Here we determines cases when items should to get mouse press event at pressing
             return true;
         if (currentTool == UBStylusTool::Play)
             return true;
+        return false;
         break;
     }
 
-    return false;
+    return !isUBItem(item); // standard behavior of QGraphicsScene for not UB items. UB items should be managed upper.
 }
 
 bool UBBoardView::itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item)
@@ -556,9 +580,11 @@ bool UBBoardView::itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item)
         return false;
 
     UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool();
-   
+
     switch(item->type())
     {
+    case QGraphicsWebView::Type:
+        return false;
     case UBGraphicsPixmapItem::Type:
     case UBGraphicsTextItem::Type:
     case UBGraphicsWidgetItem::Type:
@@ -598,6 +624,7 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item)
    
     switch(item->type())
     {
+    case UBGraphicsCurtainItem::Type:
     case UBGraphicsGroupContainerItem::Type:
         return true;
 
@@ -1091,9 +1118,11 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event)
           }
           else
           {
-             if (QGraphicsSvgItem::Type !=  movingItem->type() &&
+             if (isUBItem(movingItem) &&
+                QGraphicsSvgItem::Type !=  movingItem->type() &&
                 UBGraphicsDelegateFrame::Type !=  movingItem->type() &&
                 UBToolWidget::Type != movingItem->type() &&
+                UBGraphicsCache::Type != movingItem->type() &&
                 QGraphicsWebView::Type != movingItem->type() && // for W3C widgets as Tools.
                 !(!isMultipleSelectionEnabled() && movingItem->parentItem() && UBGraphicsWidgetItem::Type == movingItem->type() && UBGraphicsGroupContainerItem::Type == movingItem->parentItem()->type()))
              {
diff --git a/src/board/UBBoardView.h b/src/board/UBBoardView.h
index 1aae71ba..0794d76c 100644
--- a/src/board/UBBoardView.h
+++ b/src/board/UBBoardView.h
@@ -57,6 +57,7 @@ class UBBoardView : public QGraphicsView
     protected:
 
         bool itemIsLocked(QGraphicsItem *item);
+        bool isUBItem(QGraphicsItem *item); // we should to determine items who is not UB and use general scene behavior for them.
         void handleItemsSelection(QGraphicsItem *item);
         bool itemShouldReceiveMousePressEvent(QGraphicsItem *item);
         bool itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item);
diff --git a/src/desktop/UBDesktopAnnotationController.cpp b/src/desktop/UBDesktopAnnotationController.cpp
index c9640223..6ca9ba87 100644
--- a/src/desktop/UBDesktopAnnotationController.cpp
+++ b/src/desktop/UBDesktopAnnotationController.cpp
@@ -67,7 +67,6 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
 {
 
     mTransparentDrawingView = new UBBoardView(UBApplication::boardController, static_cast<QWidget*>(0), true); // deleted in UBDesktopAnnotationController::destructor
-
     mTransparentDrawingView->setAttribute(Qt::WA_TranslucentBackground, true);
 #ifdef Q_WS_MAC
     mTransparentDrawingView->setAttribute(Qt::WA_MacNoShadow, true);
@@ -102,9 +101,15 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent)
     }
 
     connect(mDesktopPalette, SIGNAL(uniboardClick()), this, SLOT(goToUniboard()));
+    connect(mDesktopPalette, SIGNAL(uniboardClick()), this, SLOT(onToolClicked()));
     connect(mDesktopPalette, SIGNAL(customClick()), this, SLOT(customCapture()));
+    connect(mDesktopPalette, SIGNAL(customClick()), this, SLOT(onToolClicked()));
     connect(mDesktopPalette, SIGNAL(windowClick()), this, SLOT(windowCapture()));
+    connect(mDesktopPalette, SIGNAL(windowClick()), this, SLOT(onToolClicked()));
     connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(screenCapture()));
+    connect(mDesktopPalette, SIGNAL(screenClick()), this, SLOT(onToolClicked()));
+    connect(UBApplication::mainWindow->actionPointer, SIGNAL(triggered()), this, SLOT(onToolClicked()));
+    connect(UBApplication::mainWindow->actionSelector, SIGNAL(triggered()), this, SLOT(onToolClicked()));
     connect(mDesktopPalette, SIGNAL(maximized()), this, SLOT(onDesktopPaletteMaximized()));
     connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), this, SLOT(onDesktopPaletteMinimize()));
 
@@ -382,6 +387,7 @@ void UBDesktopAnnotationController::hideWindow()
 
 void UBDesktopAnnotationController::goToUniboard()
 {
+	onToolClicked();
     hideWindow();
 
     UBPlatformUtils::setDesktopMode(false);
@@ -397,6 +403,7 @@ void UBDesktopAnnotationController::goToUniboard()
 
 void UBDesktopAnnotationController::customCapture()
 {
+	onToolClicked();
     mIsFullyTransparent = true;
     updateBackground();
 
@@ -424,6 +431,7 @@ void UBDesktopAnnotationController::customCapture()
 
 void UBDesktopAnnotationController::windowCapture()
 {
+	onToolClicked();
     mIsFullyTransparent = true;
     updateBackground();
 
@@ -453,6 +461,7 @@ void UBDesktopAnnotationController::windowCapture()
 
 void UBDesktopAnnotationController::screenCapture()
 {
+	onToolClicked();
     mIsFullyTransparent = true;
     updateBackground();
 
@@ -539,7 +548,6 @@ void UBDesktopAnnotationController::penActionPressed()
  */
 void UBDesktopAnnotationController::penActionReleased()
 {
-    qDebug() << "penActionReleased()";
     mHoldTimerPen.stop();
     if(mPendingPenButtonPressed)
     {
@@ -594,7 +602,6 @@ void UBDesktopAnnotationController::eraserActionPressed()
  */
 void UBDesktopAnnotationController::eraserActionReleased()
 {
-    qDebug() << "eraserActionReleased()";
     mHoldTimerEraser.stop();
     if(mPendingEraserButtonPressed)
     {
@@ -651,7 +658,6 @@ void UBDesktopAnnotationController::markerActionPressed()
  */
 void UBDesktopAnnotationController::markerActionReleased()
 {
-    qDebug() << "markerActionReleased()";
     mHoldTimerMarker.stop();
     if(mPendingMarkerButtonPressed)
     {
@@ -930,3 +936,9 @@ void UBDesktopAnnotationController::refreshMask()
         updateMask(true);
     }
 }
+
+void UBDesktopAnnotationController::onToolClicked(){
+	mDesktopEraserPalette->hide();
+	mDesktopMarkerPalette->hide();
+	mDesktopPenPalette->hide();
+}
diff --git a/src/desktop/UBDesktopAnnotationController.h b/src/desktop/UBDesktopAnnotationController.h
index 207db94b..c98b2466 100644
--- a/src/desktop/UBDesktopAnnotationController.h
+++ b/src/desktop/UBDesktopAnnotationController.h
@@ -111,6 +111,7 @@ class UBDesktopAnnotationController : public QObject
         void onDesktopPaletteMinimize();
         void onTransparentWidgetResized();
         void refreshMask();
+        void onToolClicked();
 
     private:
         void setAssociatedPalettePosition(UBActionPalette* palette, const QString& actionName);
diff --git a/src/document/UBDocumentController.cpp b/src/document/UBDocumentController.cpp
index dbe0707b..4be9ee0f 100755
--- a/src/document/UBDocumentController.cpp
+++ b/src/document/UBDocumentController.cpp
@@ -551,8 +551,11 @@ void UBDocumentController::deleteSelectedItem()
         {
             if(UBApplication::mainWindow->yesNoQuestion(tr("Remove Document"), tr("Are you sure you want to remove the document '%1'?").arg(proxyTi->proxy()->metaData(UBSettings::documentName).toString())))
             {
-                if (proxyTi->parent() == mTrashTi)
+                if (proxyTi->parent() != mTrashTi)
                 {
+                    // We have to move document into Trash
+                    // Select another document for processing
+                    // This is for Board, where this document can be selected
                     int index = proxyTi->parent()->indexOfChild(proxyTi);
                     index --;
 
@@ -560,7 +563,7 @@ void UBDocumentController::deleteSelectedItem()
                     {
                         if (proxyTi->proxy() == mBoardController->selectedDocument())
                         {
-                            selectDocument(((UBDocumentProxyTreeItem*)proxyTi->parent()->child(index))->proxy());
+                            selectDocument(((UBDocumentProxyTreeItem*)proxyTi->parent()->child(index))->proxy(), true);
                         }
                         else
                             proxyTi->parent()->child(index)->setSelected(true);
@@ -569,7 +572,7 @@ void UBDocumentController::deleteSelectedItem()
                     {
                         if (proxyTi->proxy() == mBoardController->selectedDocument())
                         {
-                            selectDocument(((UBDocumentProxyTreeItem*)proxyTi->parent()->child(1))->proxy());
+                            selectDocument(((UBDocumentProxyTreeItem*)proxyTi->parent()->child(1))->proxy(), true);
                         }
                         else
                             proxyTi->parent()->child(1)->setSelected(true);
@@ -578,30 +581,36 @@ void UBDocumentController::deleteSelectedItem()
                     {
                         if (proxyTi->proxy() == mBoardController->selectedDocument())
                         {
+                            bool documentFound = false;
                             for (int i = 0; i < mDocumentUI->documentTreeWidget->topLevelItemCount(); i++)
                             {
                                 QTreeWidgetItem* item = mDocumentUI->documentTreeWidget->topLevelItem(i);
                                 UBDocumentGroupTreeItem* groupItem = dynamic_cast<UBDocumentGroupTreeItem*>(item);
-                                if (groupItem != selectedDocumentGroupTreeItem() && groupItem->childCount() > 0)
+                                if (!groupItem->isTrashFolder())
                                 {
-                                    selectDocument(((UBDocumentProxyTreeItem*)groupItem->child(0))->proxy());
-                                    break;
+                                    for(int j=0; j<groupItem->childCount(); j++)
+                                    {
+                                        if (((UBDocumentProxyTreeItem*)groupItem->child(j))->proxy() != mBoardController->selectedDocument())
+                                        {
+                                            selectDocument(((UBDocumentProxyTreeItem*)groupItem->child(0))->proxy(), true);
+                                            documentFound = true;
+                                            break;
+                                        }
+                                    }
                                 }
+                                if (documentFound)
+                                    break;
+                            }
+                            if (!documentFound)
+                            {
+                                UBDocumentProxy *document = UBPersistenceManager::persistenceManager()->createDocument(groupTi->groupName());
+                                selectDocument(document, true);
                             }
                         }
                         else
                             proxyTi->parent()->setSelected(true);
                     }
 
-                    proxyTi->parent()->removeChild(proxyTi);
-
-                    UBPersistenceManager::persistenceManager()->deleteDocument(proxyTi->proxy());
-
-                    reloadThumbnails();
-                }
-                else
-                {
-                    // Move document to trash
                     QString oldGroupName = proxyTi->proxy()->metaData(UBSettings::documentGroupName).toString();
                     proxyTi->proxy()->setMetaData(UBSettings::documentGroupName, UBSettings::trashedDocumentGroupNamePrefix + oldGroupName);
                     UBPersistenceManager::persistenceManager()->persistDocumentMetadata(proxyTi->proxy());
@@ -610,6 +619,14 @@ void UBDocumentController::deleteSelectedItem()
                     mTrashTi->addChild(proxyTi);
                     proxyTi->setFlags(proxyTi->flags() ^ Qt::ItemIsEditable);
                 }
+                else
+                {
+                    // We have to physical delete document
+                    // No action with selection required - document from Trash cant be selected in Board
+
+                    proxyTi->parent()->removeChild(proxyTi);
+                    UBPersistenceManager::persistenceManager()->deleteDocument(proxyTi->proxy());
+                }
             }
         }
         else if (groupTi)
@@ -661,20 +678,6 @@ void UBDocumentController::deleteSelectedItem()
                         }
                     }
 
-                    if (changeCurrentDocument)
-                    {
-                        for (int i = 0; i < mDocumentUI->documentTreeWidget->topLevelItemCount(); i++)
-                        {
-                            QTreeWidgetItem* item = mDocumentUI->documentTreeWidget->topLevelItem(i);
-                            UBDocumentGroupTreeItem* groupItem = dynamic_cast<UBDocumentGroupTreeItem*>(item);
-                            if (groupItem != groupTi && groupItem->childCount() > 0)
-                            {
-                                selectDocument(((UBDocumentProxyTreeItem*)groupItem->child(0))->proxy());
-                                break;
-                            }
-                        }
-                    }
-
                     QList<UBDocumentProxyTreeItem*> toBeDeleted;
 
                     for (int i = 0; i < groupTi->childCount(); i++)
@@ -712,6 +715,36 @@ void UBDocumentController::deleteSelectedItem()
                         }
                     }
 
+                    if (changeCurrentDocument)
+                    {
+                        bool documentFound = false;
+                        for (int i = 0; i < mDocumentUI->documentTreeWidget->topLevelItemCount(); i++)
+                        {
+                            QTreeWidgetItem* item = mDocumentUI->documentTreeWidget->topLevelItem(i);
+                            UBDocumentGroupTreeItem* groupItem = dynamic_cast<UBDocumentGroupTreeItem*>(item);
+                            if (!groupItem->isTrashFolder() && groupItem != groupTi)
+                            {
+                                for(int j=0; j<groupItem->childCount(); j++)
+                                {
+                                    if (((UBDocumentProxyTreeItem*)groupItem->child(j))->proxy() != mBoardController->selectedDocument())
+                                    {
+                                        selectDocument(((UBDocumentProxyTreeItem*)groupItem->child(0))->proxy(), true);
+                                        documentFound = true;
+                                        break;
+                                    }
+                                 }
+                            }
+                            if (documentFound)
+                                break;
+                        }
+                        if (!documentFound)
+                        {
+                                UBDocumentProxy *document = UBPersistenceManager::persistenceManager()->createDocument( UBSettings::defaultDocumentGroupName );
+                                selectDocument(document, true);
+                        }
+                    }
+
+
                     reloadThumbnails();
 
                     QApplication::restoreOverrideCursor();