diff --git a/libwccl/values/strset.h b/libwccl/values/strset.h
index 0d1082acaea6acbedbb9175e9139b71d00da33e6..5f2e36a62ab89c2456535c0723440dc2ee09ce04 100644
--- a/libwccl/values/strset.h
+++ b/libwccl/values/strset.h
@@ -48,6 +48,19 @@ public:
 	{
 	}
 
+	// Good job, boost. https://svn.boost.org/trac/boost/ticket/6167
+	// "Assignment from a temporary of a class containing
+	// boost::unordered_map members fails with GNU GCC"
+	// Work around this by manually defining op=(const&), otherwise
+	// on boost 1.48 the following code will fail in non-c++0x mode:
+	//     StrSet s;
+	//     s = StrSet(); //compile error
+	StrSet& operator=(const StrSet& s) {
+		set_ = s.set_;
+		return *this;
+	}
+
+
 	const value_type& get_value() const {
 		return set_;
 	}