diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp
index 4556cb0c..e279cfbe 100644
--- a/src/domain/UBGraphicsItemDelegate.cpp
+++ b/src/domain/UBGraphicsItemDelegate.cpp
@@ -419,9 +419,6 @@ bool UBGraphicsItemDelegate::isLocked()
 void UBGraphicsItemDelegate::duplicate()
 {
     // TODO UB 4.x .. rewrite .. .this is absurde ... we know what we are duplicating
-
-    UBApplication::boardController->copy();
-    UBApplication::boardController->paste();
     UBApplication::boardController->duplicateItem(dynamic_cast<UBItem*>(delegated()));
 }
 
diff --git a/src/domain/UBGraphicsStrokesGroup.cpp b/src/domain/UBGraphicsStrokesGroup.cpp
index bff2dd5e..92cd1bf4 100644
--- a/src/domain/UBGraphicsStrokesGroup.cpp
+++ b/src/domain/UBGraphicsStrokesGroup.cpp
@@ -1,5 +1,7 @@
 #include "UBGraphicsStrokesGroup.h"
 
+#include "domain/UBGraphicsPolygonItem.h"
+
 #include "core/memcheck.h"
 
 UBGraphicsStrokesGroup::UBGraphicsStrokesGroup(QGraphicsItem *parent):QGraphicsItemGroup(parent)
@@ -63,6 +65,15 @@ UBItem* UBGraphicsStrokesGroup::deepCopy() const
 {
    UBGraphicsStrokesGroup* copy = new UBGraphicsStrokesGroup();
 
+
+   QList<QGraphicsItem*> chl = childItems();
+
+    foreach(QGraphicsItem *child, chl)
+    {
+        UBGraphicsPolygonItem *polygon = dynamic_cast<UBGraphicsPolygonItem*>(child);
+        if (polygon)
+            copy->addToGroup(dynamic_cast<QGraphicsItem*>(polygon->deepCopy()));
+    }
     copyItemParameters(copy);
 
    return copy;