diff --git a/lib/Slic3r/Test.pm b/lib/Slic3r/Test.pm
index e1c715d42..53d6d1024 100644
--- a/lib/Slic3r/Test.pm
+++ b/lib/Slic3r/Test.pm
@@ -189,6 +189,8 @@ sub init_print {
             $print->add_model_object($model_object);
         }
     }
+    # Call apply_config one more time, so that the layer height profiles are updated over all PrintObjects.
+    $print->apply_config($config);
     $print->validate;
     
     # We return a proxy object in order to keep $models alive as required by the Print API.
diff --git a/xs/src/libslic3r/GCode/ToolOrdering.cpp b/xs/src/libslic3r/GCode/ToolOrdering.cpp
index 468f47c15..156590b1a 100644
--- a/xs/src/libslic3r/GCode/ToolOrdering.cpp
+++ b/xs/src/libslic3r/GCode/ToolOrdering.cpp
@@ -2,6 +2,7 @@
 #include "ToolOrdering.hpp"
 
 #include <assert.h>
+#include <limits>
 
 namespace Slic3r {
 
@@ -253,7 +254,7 @@ void ToolOrdering::fill_wipe_tower_partitions(const PrintConfig &config, coordf_
         lt.has_wipe_tower = (lt.has_object && lt.wipe_tower_partitions > 0) || lt.print_z < object_bottom_z + EPSILON;
 
     // Test for a raft, insert additional wipe tower layer to fill in the raft separation gap.
-    double max_layer_height = FLT_MAX;
+    double max_layer_height = std::numeric_limits<double>::max();
     for (size_t i = 0; i < config.nozzle_diameter.values.size(); ++ i) {
         double mlh = config.max_layer_height.values[i];
         if (mlh == 0.)