There is a simple workaround for it: dump the shape to binary; create a new shape from the binary; and then insert the new shape. ArcGIS desktop uses the same way during copy / past. For instance, in the repro case: case SeColumnDefinition.TYPE_SHAPE: System.out.println(i + ":\t" + colDef.getName() + " : SHAPE" ); SeShape shp = in_srcRow.getShape(i); // in_destRow.setShape(i, shp); int size=shp.getBinarySize(); java.util.ArrayList binArry=shp.asBinary(size+1); SeShape newShape=new SeShape(CoordRef_of_the_Target_Layer) ; byte[] bytes=(byte[])binArry.get(1); newShape.generateFromBinary(bytes); in_destRow.setShape(i, newShape);