diff --git a/lib/Slic3r/GUI/Plater/OverrideSettingsPanel.pm b/lib/Slic3r/GUI/Plater/OverrideSettingsPanel.pm
index 3b10ed99f..ea4ce7132 100644
--- a/lib/Slic3r/GUI/Plater/OverrideSettingsPanel.pm
+++ b/lib/Slic3r/GUI/Plater/OverrideSettingsPanel.pm
@@ -136,7 +136,7 @@ sub update_optgroup {
             full_labels     => 1,
             label_font      => $Slic3r::GUI::small_font,
             sidetext_font   => $Slic3r::GUI::small_font,
-            label_width     => 120,
+            label_width     => 150,
             on_change       => sub { $self->{on_change}->() if $self->{on_change} },
             extra_column    => sub {
                 my ($line) = @_;
diff --git a/resources/profiles/PrusaResearch.idx b/resources/profiles/PrusaResearch.idx
index ba4123588..63a81db49 100644
--- a/resources/profiles/PrusaResearch.idx
+++ b/resources/profiles/PrusaResearch.idx
@@ -1,8 +1,14 @@
 min_slic3r_version = 1.41.0-alpha
+0.2.2 Edited MMU2 Single mode purge line
+0.2.1 Added PET and BVOH settings for MMU2
+0.2.0-beta5 Fixed MMU1 ramming parameters
+0.2.0-beta4 Added filament loading speed at start, increased minimal purge on wipe tower
+0.2.0-beta3 Edited ramming parameters and filament cooling moves for MMU2
+0.2.0-beta2 Edited first layer speed and wipe tower position
 0.2.0-beta Removed limit on the MK3MMU2 height, added legacy M204 S T format to the MK2 profiles
 0.2.0-alpha8 Added filament_load/unload_time for the PLA/ABS MMU2 filament presets.
-0.2.0-alpha7 Fixed the *MK3* references
-0.2.0-alpha6
+0.2.0-alpha7 Vojtech's fix the incorrect *MK3* references
+0.2.0-alpha6 Jindra's way to fix the 0.2.0-alpha5 version
 0.2.0-alpha5 Bumped up firmware versions for MK2.5/MK3 to 3.3.1, disabled priming areas for MK3MMU2
 0.2.0-alpha4 Extended the custom start/end G-codes of the MMU2.0 printers for no priming towers.
 0.2.0-alpha3 Adjusted machine limits for time estimates, added filament density and cost
diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini
index 32ec800e7..3b44a4bc7 100644
--- a/resources/profiles/PrusaResearch.ini
+++ b/resources/profiles/PrusaResearch.ini
@@ -5,7 +5,7 @@
 name = Prusa Research
 # Configuration version of this file. Config file will only be installed, if the config_version differs.
 # This means, the server may force the Slic3r configuration to be downgraded.
-config_version = 0.2.0-beta
+config_version = 0.2.2
 # Where to get the updates from?
 config_update_url = https://raw.githubusercontent.com/prusa3d/Slic3r-settings/master/live/PrusaResearch/
 
@@ -67,7 +67,7 @@ fill_pattern = cubic
 first_layer_acceleration = 1000
 first_layer_extrusion_width = 0.42
 first_layer_height = 0.2
-first_layer_speed = 30
+first_layer_speed = 20
 gap_fill_speed = 40
 gcode_comments = 0
 infill_every_layers = 1
@@ -113,7 +113,7 @@ support_material_interface_extruder = 0
 support_material_angle = 0
 support_material_buildplate_only = 0
 support_material_enforce_layers = 0
-support_material_contact_distance = 0.15
+support_material_contact_distance = 0.1
 support_material_interface_contact_loops = 0
 support_material_interface_layers = 2
 support_material_interface_spacing = 0.2
@@ -122,9 +122,9 @@ support_material_pattern = rectilinear
 support_material_spacing = 2
 support_material_speed = 50
 support_material_synchronize_layers = 0
-support_material_threshold = 45
+support_material_threshold = 55
 support_material_with_sheath = 0
-support_material_xy_spacing = 60%
+support_material_xy_spacing = 50%
 thin_walls = 0
 top_infill_extrusion_width = 0.45
 top_solid_infill_speed = 40
@@ -133,13 +133,15 @@ wipe_tower = 1
 wipe_tower_bridging = 10
 wipe_tower_rotation_angle = 0
 wipe_tower_width = 60
-wipe_tower_x = 180
-wipe_tower_y = 135
+wipe_tower_x = 170
+wipe_tower_y = 140
 xy_size_compensation = 0
 
 [print:*MK3*]
 fill_pattern = grid
 single_extruder_multi_material_priming = 0
+wipe_tower_x = 170
+wipe_tower_y = 125
 
 # Print parameters common to a 0.25mm diameter nozzle.
 [print:*0.25nozzle*]
@@ -557,13 +559,17 @@ compatible_printers_condition = ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ a
 end_filament_gcode = "; Filament-specific end gcode"
 extrusion_multiplier = 1
 filament_loading_speed = 28
+filament_loading_speed_start = 3
 filament_unloading_speed = 90
+filament_unloading_speed_start = 100
 filament_toolchange_delay = 0
 filament_cooling_moves = 4
 filament_cooling_initial_speed = 2.2
 filament_cooling_final_speed = 3.4
+filament_load_time = 0
+filament_unload_time = 0
 filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
-filament_minimal_purge_on_wipe_tower = 5
+filament_minimal_purge_on_wipe_tower = 15
 filament_cost = 0
 filament_density = 0
 filament_diameter = 1.75
@@ -664,6 +670,8 @@ cooling = 1
 disable_fan_first_layers = 3
 fan_always_on = 0
 fan_below_layer_time = 10
+filament_cost = 58.66
+filament_density = 1.18
 first_layer_bed_temperature = 105
 first_layer_temperature = 270
 max_fan_speed = 20
@@ -741,7 +749,7 @@ temperature = 260
 
 [filament:E3D Edge]
 inherits = *PET*
-filament_cost = 0
+filament_cost = 56.9
 filament_density = 1.26
 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG"
 
@@ -754,14 +762,14 @@ temperature = 270
 
 [filament:Fillamentum ABS]
 inherits = *ABS*
-filament_cost = 0
+filament_cost = 32.4
 filament_density = 1.04
 first_layer_temperature = 240
 temperature = 240
 
 [filament:Fillamentum ASA]
 inherits = *ABS*
-filament_cost = 0
+filament_cost = 38.7
 filament_density = 1.04
 fan_always_on = 1
 first_layer_temperature = 265
@@ -769,7 +777,7 @@ temperature = 265
 
 [filament:Fillamentum CPE HG100 HM100]
 inherits = *PET*
-filament_cost = 0
+filament_cost = 54.1
 filament_density = 1.25
 filament_notes = "CPE HG100 , CPE HM100"
 first_layer_bed_temperature = 90
@@ -783,7 +791,7 @@ inherits = *PLA*
 # For now, all but selected filaments are disabled for the MMU 2.0
 compatible_printers_condition = nozzle_diameter[0]>0.35 and ! (printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and single_extruder_multi_material)
 extrusion_multiplier = 1.2
-filament_cost = 0
+filament_cost = 68
 filament_density = 1.15
 filament_colour = #804040
 filament_max_volumetric_speed = 10
@@ -793,24 +801,26 @@ temperature = 190
 
 [filament:Generic ABS]
 inherits = *ABS*
-filament_cost = 0
+filament_cost = 27.82
 filament_density = 1.04
 filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS"
 
 [filament:Generic PET]
 inherits = *PET*
-filament_cost = 0
+filament_cost = 27.82
 filament_density = 1.24
 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG"
 
 [filament:Generic PLA]
 inherits = *PLA*
-filament_cost = 0
+filament_cost = 25.4
 filament_density = 1.27
 filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH"
 
 [filament:Polymaker PC-Max]
 inherits = *ABS*
+filament_cost = 77.3
+filament_density = 1.20
 bed_temperature = 115
 filament_colour = #3A80CA
 first_layer_bed_temperature = 100
@@ -819,6 +829,8 @@ temperature = 270
 
 [filament:Primavalue PVA]
 inherits = *PLA*
+filament_cost = 108
+filament_density = 1.23
 cooling = 0
 fan_always_on = 0
 filament_colour = #FFFFD7
@@ -843,10 +855,7 @@ compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and
 filament_cooling_final_speed = 50 
 filament_cooling_initial_speed = 10
 filament_cooling_moves = 5
-filament_loading_speed = 14
 filament_ramming_parameters = "120 110 5.32258 5.45161 5.67742 6 6.48387 7.12903 7.90323 8.70968 9.3871 9.83871 10.0968 10.2258| 0.05 5.30967 0.45 5.50967 0.95 6.1871 1.45 7.39677 1.95 9.05484 2.45 10 2.95 10.3098 3.45 13.0839 3.95 7.6 4.45 7.6 4.95 7.6";
-filament_load_time = 12
-filament_unload_time = 11
 
 [filament:Generic ABS MMU2]
 inherits = *ABS MMU2*
@@ -856,6 +865,8 @@ inherits = *ABS MMU2*
 
 [filament:Prusa HIPS]
 inherits = *ABS*
+filament_cost = 27.3
+filament_density = 1.04
 bridge_fan_speed = 50
 cooling = 1
 extrusion_multiplier = 0.9
@@ -876,6 +887,28 @@ filament_cost = 27.82
 filament_density = 1.27
 filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG"
 
+[filament:*PET MMU2*]
+inherits = Prusa PET
+compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and single_extruder_multi_material
+temperature = 230
+first_layer_temperature = 230
+filament_cooling_final_speed = 1
+filament_cooling_initial_speed = 2
+filament_cooling_moves = 1
+filament_load_time = 12
+filament_loading_speed = 14
+filament_notes = PET
+filament_ramming_parameters = "120 140 4.70968 4.74194 4.77419 4.80645 4.83871 4.87097 4.90323 5 5.25806 5.67742 6.29032 7.06452 7.83871 8.3871| 0.05 4.72901 0.45 4.73545 0.95 4.83226 1.45 4.88067 1.95 5.05483 2.45 5.93553 2.95 7.53556 3.45 8.6323 3.95 7.6 4.45 7.6 4.95 7.6"
+filament_unload_time = 11
+filament_unloading_speed = 20
+filament_unloading_speed_start = 120
+
+[filament:Generic PET MMU2]
+inherits = *PET MMU2*
+
+[filament:Prusa PET MMU2]
+inherits = *PET MMU2*
+
 [filament:Prusa PLA]
 inherits = *PLA*
 filament_cost = 25.4
@@ -885,13 +918,15 @@ filament_notes = "List of materials tested with standart PLA print settings for
 [filament:*PLA MMU2*]
 inherits = Prusa PLA
 compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and single_extruder_multi_material
-filament_cooling_final_speed = 50
-filament_cooling_initial_speed = 10
-filament_cooling_moves = 7
-filament_loading_speed = 14
-filament_ramming_parameters = "120 110 4.03226 4.12903 4.25806 4.41935 4.58065 4.80645 5.35484 6.29032 7.58065 9.09677 10.5806 11.8387 12.6452 12.9677| 0.05 4.01935 0.45 4.15483 0.95 4.50968 1.45 4.94516 1.95 6.79677 2.45 9.87102 2.95 12.4388 3.45 13.0839 3.95 7.6 4.45 7.6 4.95 7.6"
+temperature = 205
+filament_cooling_final_speed = 1
+filament_cooling_initial_speed = 2
+filament_cooling_moves = 1
 filament_load_time = 12
+filament_loading_speed = 14
+filament_ramming_parameters = "120 110 2.70968 2.93548 3.32258 3.83871 4.58065 5.54839 6.51613 7.35484 7.93548 8.16129| 0.05 2.66451 0.45 3.05805 0.95 4.05807 1.45 5.97742 1.95 7.69999 2.45 8.1936 2.95 11.342 3.45 11.4065 3.95 7.6 4.45 7.6 4.95 7.6"
 filament_unload_time = 11
+filament_unloading_speed = 20
 
 [filament:Generic PLA MMU2]
 inherits = *PLA MMU2*
@@ -901,11 +936,13 @@ inherits = *PLA MMU2*
 
 [filament:SemiFlex or Flexfill 98A]
 inherits = *FLEX*
-filament_cost = 0
+filament_cost = 82
 filament_density = 1.22
 
 [filament:Taulman Bridge]
 inherits = *common*
+filament_cost = 40
+filament_density = 1.13
 bed_temperature = 90
 bridge_fan_speed = 40
 cooling = 0
@@ -925,6 +962,8 @@ temperature = 250
 
 [filament:Taulman T-Glase]
 inherits = *PET*
+filament_cost = 40
+filament_density = 1.27
 bridge_fan_speed = 40
 cooling = 0
 fan_always_on = 0
@@ -936,6 +975,8 @@ start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{el
 
 [filament:Verbatim BVOH]
 inherits = *common*
+filament_cost = 218
+filament_density = 1.23
 bed_temperature = 60
 bridge_fan_speed = 100
 cooling = 0
@@ -944,7 +985,7 @@ extrusion_multiplier = 1
 fan_always_on = 0
 fan_below_layer_time = 100
 filament_colour = #FFFFD7
-filament_max_volumetric_speed = 10
+filament_max_volumetric_speed = 4
 filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH"
 filament_soluble = 1
 filament_type = PLA
@@ -955,8 +996,29 @@ min_fan_speed = 100
 start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode"
 temperature = 210
 
+[filament:Verbatim BVOH MMU2]
+inherits = Verbatim BVOH
+compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and printer_notes=~/.*PRINTER_MODEL_MK3.*/ and single_extruder_multi_material
+temperature = 195
+filament_notes = BVOH
+fan_always_on = 1
+first_layer_temperature = 200
+filament_cooling_final_speed = 1
+filament_cooling_initial_speed = 2
+filament_max_volumetric_speed = 4
+filament_type = PVA
+filament_cooling_moves = 1
+filament_load_time = 12
+filament_loading_speed = 14
+filament_ramming_parameters = "120 110 1.74194 1.90323 2.16129 2.48387 2.83871 3.25806 3.83871 4.6129 5.41935 5.96774| 0.05 1.69677 0.45 1.96128 0.95 2.63872 1.45 3.46129 1.95 4.99031 2.45 6.12908 2.95 8.30974 3.45 11.4065 3.95 7.6 4.45 7.6 4.95 7.6"
+filament_unload_time = 11
+filament_unloading_speed = 20
+filament_unloading_speed_start = 100
+
 [filament:Verbatim PP]
 inherits = *common*
+filament_cost = 72
+filament_density = 0.89
 bed_temperature = 100
 bridge_fan_speed = 100
 cooling = 1
@@ -1207,7 +1269,7 @@ default_filament_profile = Prusa PLA MMU2
 
 [printer:Original Prusa i3 MK3 MMU2 Single]
 inherits = *mm2*
-start_gcode = M107\nM115 U3.3.1 ; tell printer latest fw version\nM83  ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT?\n; initial load\nG1 X55.0 E32.0 F1073.0\nG1 X5.0 E32.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0  F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG92 E0.0\n
+start_gcode = M107\nM115 U3.4.0-RC2 ; tell printer latest fw version\nM83  ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT?\n; purge line\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0  F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG92 E0.0\n
 end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors
 
 [printer:Original Prusa i3 MK3 MMU2]
@@ -1215,9 +1277,10 @@ inherits = *mm2*
 # The 5x nozzle diameter defines the number of extruders. Other extruder parameters
 # (for example the retract values) are duplicaed from the first value, so they do not need 
 # to be defined explicitely.
+machine_max_acceleration_e = 8000,8000
 nozzle_diameter = 0.4,0.4,0.4,0.4,0.4
 extruder_colour = #FF8000;#0080FF;#00FFFF;#FF4F4F;#9FFF9F
-start_gcode = M107\nM115 U3.3.1 ; tell printer latest fw version\nM83  ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG21 ; set units to millimeters\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E32.0 F1073.0\nG1 X5.0 E32.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0  F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\n\n;M221 S{if layer_height<0.075}100{else}95{endif}\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG92 E0.0\n
+start_gcode = M107\nM115 U3.4.0-RC2 ; tell printer latest fw version\nM83  ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG21 ; set units to millimeters\n\n; Send the filament type to the MMU2.0 unit.\n; E stands for extruder number, F stands for filament type (0: default; 1:flex; 2: PVA)\nM403 E0 F{"" + ((filament_type[0]=="FLEX") ? 1 : ((filament_type[0]=="PVA") ? 2 : 0))}\nM403 E1 F{"" + ((filament_type[1]=="FLEX") ? 1 : ((filament_type[1]=="PVA") ? 2 : 0))}\nM403 E2 F{"" + ((filament_type[2]=="FLEX") ? 1 : ((filament_type[2]=="PVA") ? 2 : 0))}\nM403 E3 F{"" + ((filament_type[3]=="FLEX") ? 1 : ((filament_type[3]=="PVA") ? 2 : 0))}\nM403 E4 F{"" + ((filament_type[4]=="FLEX") ? 1 : ((filament_type[4]=="PVA") ? 2 : 0))}\n\n{if not has_single_extruder_multi_material_priming}\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nT[initial_tool]\n; initial load\nG1 X55.0 E32.0 F1073.0\nG1 X5.0 E32.0 F1800.0\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0  F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n{endif}\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG92 E0.0\n
 end_gcode = {if has_wipe_tower}\nG1 E-15.0000 F3000\n{else}\nG1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n{endif}\n\n; Unload filament\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n; Lift print head a bit\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200; home X axis\nM84 ; disable motors\n
 
 # The obsolete presets will be removed when upgrading from the legacy configuration structure (up to Slic3r 1.39.2) to 1.40.0 and newer.
diff --git a/xs/src/admesh/stlinit.cpp b/xs/src/admesh/stlinit.cpp
index e572ce930..ed8beb9d1 100644
--- a/xs/src/admesh/stlinit.cpp
+++ b/xs/src/admesh/stlinit.cpp
@@ -287,7 +287,7 @@ stl_read(stl_file *stl, int first_facet, int first) {
     {
       // skip solid/endsolid
       // (in this order, otherwise it won't work when they are paired in the middle of a file)
-      fscanf(stl->fp, "endsolid\n");
+      fscanf(stl->fp, "endsolid%*[^\n]\n");
       fscanf(stl->fp, "solid%*[^\n]\n");  // name might contain spaces so %*s doesn't work and it also can be empty (just "solid")
       // Leading space in the fscanf format skips all leading white spaces including numerous new lines and tabs.
       int res_normal     = fscanf(stl->fp, " facet normal %31s %31s %31s", normal_buf[0], normal_buf[1], normal_buf[2]);
diff --git a/xs/src/libslic3r/Format/3mf.cpp b/xs/src/libslic3r/Format/3mf.cpp
index 5de1d26c5..945bb1f86 100644
--- a/xs/src/libslic3r/Format/3mf.cpp
+++ b/xs/src/libslic3r/Format/3mf.cpp
@@ -603,6 +603,8 @@ namespace Slic3r {
 
             if (!_generate_volumes(*object.second, obj_geometry->second, *volumes_ptr))
                 return false;
+
+            object.second->center_around_origin();
         }
 
         // fixes the min z of the model if negative
diff --git a/xs/src/libslic3r/libslic3r.h b/xs/src/libslic3r/libslic3r.h
index 6db60440b..ddd056bc7 100644
--- a/xs/src/libslic3r/libslic3r.h
+++ b/xs/src/libslic3r/libslic3r.h
@@ -14,7 +14,7 @@
 #include <boost/thread.hpp>
 
 #define SLIC3R_FORK_NAME "Slic3r Prusa Edition"
-#define SLIC3R_VERSION "1.41.0-beta2"
+#define SLIC3R_VERSION "1.41.0"
 #define SLIC3R_BUILD "UNKNOWN"
 
 typedef int32_t coord_t;
diff --git a/xs/src/slic3r/GUI/Field.cpp b/xs/src/slic3r/GUI/Field.cpp
index 757a18f11..c7f1d48ff 100644
--- a/xs/src/slic3r/GUI/Field.cpp
+++ b/xs/src/slic3r/GUI/Field.cpp
@@ -224,24 +224,20 @@ namespace Slic3r { namespace GUI {
 		}), temp->GetId());
 #endif // __WXGTK__
 
-		temp->Bind(wxEVT_TEXT, ([this](wxCommandEvent)
+		temp->Bind(wxEVT_TEXT, ([this](wxCommandEvent& evt)
 		{
 #ifdef __WXGTK__
-			bChangedValueEvent = true;
-#else
-			on_change_field();
+			if (bChangedValueEvent)
 #endif //__WXGTK__
+			on_change_field();
 		}), temp->GetId());
 
 #ifdef __WXGTK__
-		temp->Bind(wxEVT_KEY_UP, [this](wxKeyEvent& event)
-		{
-			if (bChangedValueEvent)	{
-				on_change_field();
-				bChangedValueEvent = false;
-			}
-			event.Skip();
-		});
+        // to correct value updating on GTK we should:
+        // call on_change_field() on wxEVT_KEY_UP instead of wxEVT_TEXT
+        // and prevent value updating on wxEVT_KEY_DOWN
+        temp->Bind(wxEVT_KEY_DOWN, &TextCtrl::change_field_value, this);
+        temp->Bind(wxEVT_KEY_UP, &TextCtrl::change_field_value, this);
 #endif //__WXGTK__
 
 		// select all text using Ctrl+A
@@ -267,6 +263,15 @@ namespace Slic3r { namespace GUI {
 	void TextCtrl::enable() { dynamic_cast<wxTextCtrl*>(window)->Enable(); dynamic_cast<wxTextCtrl*>(window)->SetEditable(true); }
     void TextCtrl::disable() { dynamic_cast<wxTextCtrl*>(window)->Disable(); dynamic_cast<wxTextCtrl*>(window)->SetEditable(false); }
 
+#ifdef __WXGTK__
+    void TextCtrl::change_field_value(wxEvent& event)
+    {
+    	if (bChangedValueEvent = event.GetEventType()==wxEVT_KEY_UP)
+    		on_change_field();
+        event.Skip();
+    };
+#endif //__WXGTK__
+
 void CheckBox::BUILD() {
 	auto size = wxSize(wxDefaultSize);
 	if (m_opt.height >= 0) size.SetHeight(m_opt.height);
diff --git a/xs/src/slic3r/GUI/Field.hpp b/xs/src/slic3r/GUI/Field.hpp
index db8d2a408..923f0fd7e 100644
--- a/xs/src/slic3r/GUI/Field.hpp
+++ b/xs/src/slic3r/GUI/Field.hpp
@@ -222,7 +222,8 @@ inline bool is_sizer_field(const t_field& obj) { return !is_bad_field(obj) && ob
 class TextCtrl : public Field {
     using Field::Field;
 #ifdef __WXGTK__
-	bool	bChangedValueEvent = false;
+	bool	bChangedValueEvent = true;
+    void    change_field_value(wxEvent& event);
 #endif //__WXGTK__
 public:
 	TextCtrl(const ConfigOptionDef& opt, const t_config_option_key& id) : Field(opt,  id) {}
diff --git a/xs/src/slic3r/GUI/GLCanvas3D.cpp b/xs/src/slic3r/GUI/GLCanvas3D.cpp
index ea9fd9086..062b57b49 100644
--- a/xs/src/slic3r/GUI/GLCanvas3D.cpp
+++ b/xs/src/slic3r/GUI/GLCanvas3D.cpp
@@ -3297,7 +3297,7 @@ BoundingBoxf3 GLCanvas3D::_selected_volumes_bounding_box() const
     {
         for (const GLVolume* volume : selected_volumes)
         {
-            bb.merge(volume->transformed_convex_hull_bounding_box());
+            bb.merge(volume->transformed_bounding_box());
         }
     }
 
diff --git a/xs/src/slic3r/Utils/Duet.cpp b/xs/src/slic3r/Utils/Duet.cpp
index 865d2b418..82a42eb71 100644
--- a/xs/src/slic3r/Utils/Duet.cpp
+++ b/xs/src/slic3r/Utils/Duet.cpp
@@ -230,7 +230,7 @@ std::string Duet::timestamp_str() const
 	auto tm = *std::localtime(&t);
 
 	char buffer[BUFFER_SIZE];
-	std::strftime(buffer, BUFFER_SIZE, "time=%Y-%d-%mT%H:%M:%S", &tm);
+	std::strftime(buffer, BUFFER_SIZE, "time=%Y-%m-%dT%H:%M:%S", &tm);
 
 	return std::string(buffer);
 }