diff --git a/src/util/optional.hpp b/src/util/optional.hpp
index 7405f8306abf95ffb2b14db77b21f58c9ec23dd1..0955ea99e720a24e1a02ea4926a838caec8ee2d7 100644
--- a/src/util/optional.hpp
+++ b/src/util/optional.hpp
@@ -332,9 +332,12 @@ struct optional<X&>: detail::optional_base<X&> {
     template <typename T>
     optional(optional<T&>& ot): base(ot.set,ot.ref()) {}
 
+    /*
     template <
         typename Y,
         typename = typename std::enable_if<!detail::is_optional<Y>::value>::type>
+    */
+    template <typename Y>
     optional& operator=(Y& y) {
         set = true;
         ref() = y;