Index: src/gui/qgsrubberband.cpp =================================================================== --- src/gui/qgsrubberband.cpp (revision 13422) +++ src/gui/qgsrubberband.cpp (working copy) @@ -202,19 +202,21 @@ for ( int i = 0; i < mpt.size(); ++i ) { QgsPoint pt = mpt[i]; + QList newList; + mPoints.push_back( newList ); if ( layer ) { - addPoint( mr->layerToMapCoordinates( layer, QgsPoint( pt.x() - d, pt.y() - d ) ), false ); - addPoint( mr->layerToMapCoordinates( layer, QgsPoint( pt.x() + d, pt.y() - d ) ), false ); - addPoint( mr->layerToMapCoordinates( layer, QgsPoint( pt.x() + d, pt.y() + d ) ), false ); - addPoint( mr->layerToMapCoordinates( layer, QgsPoint( pt.x() - d, pt.y() + d ) ), false ); + addPoint( mr->layerToMapCoordinates( layer, QgsPoint( pt.x() - d, pt.y() - d ) ), false, i ); + addPoint( mr->layerToMapCoordinates( layer, QgsPoint( pt.x() + d, pt.y() - d ) ), false, i ); + addPoint( mr->layerToMapCoordinates( layer, QgsPoint( pt.x() + d, pt.y() + d ) ), false, i ); + addPoint( mr->layerToMapCoordinates( layer, QgsPoint( pt.x() - d, pt.y() + d ) ), false, i ); } else { - addPoint( QgsPoint( pt.x() - d, pt.y() - d ), false ); - addPoint( QgsPoint( pt.x() + d, pt.y() - d ), false ); - addPoint( QgsPoint( pt.x() + d, pt.y() + d ), false ); - addPoint( QgsPoint( pt.x() - d, pt.y() + d ), false ); + addPoint( QgsPoint( pt.x() - d, pt.y() - d ), false, i ); + addPoint( QgsPoint( pt.x() + d, pt.y() - d ), false, i ); + addPoint( QgsPoint( pt.x() + d, pt.y() + d ), false, i ); + addPoint( QgsPoint( pt.x() - d, pt.y() + d ), false, i ); } } }