diff --git a/xs/src/libslic3r/Config.hpp b/xs/src/libslic3r/Config.hpp
index 42d19c830..6533aa65e 100644
--- a/xs/src/libslic3r/Config.hpp
+++ b/xs/src/libslic3r/Config.hpp
@@ -48,6 +48,7 @@ class ConfigOptionFloat : public ConfigOption
     double value;  // use double instead of float for preserving compatibility with values coming from Perl
     ConfigOptionFloat() : value(0) {};
     
+    operator float() const { return this->value; };
     operator double() const { return this->value; };
     
     std::string serialize() const {
diff --git a/xs/src/libslic3r/PrintRegion.cpp b/xs/src/libslic3r/PrintRegion.cpp
index d651b57ab..4a84de15a 100644
--- a/xs/src/libslic3r/PrintRegion.cpp
+++ b/xs/src/libslic3r/PrintRegion.cpp
@@ -60,7 +60,7 @@ PrintRegion::flow(FlowRole role, double layer_height, bool bridge, bool first_la
     }
     double nozzle_diameter = this->_print->config.nozzle_diameter.get_at(extruder-1);
     
-    return Flow::new_from_config_width(role, config_width, nozzle_diameter, layer_height, bridge ? this->config.bridge_flow_ratio : 0);
+    return Flow::new_from_config_width(role, config_width, nozzle_diameter, layer_height, bridge ? (float)this->config.bridge_flow_ratio : 0.0);
 }
 
 #ifdef SLIC3RXS