diff --git a/libwccl/values/position.h b/libwccl/values/position.h
index 747beda772a203f7d7cddcceca5edf782db5be6d..fed7a414ed5369acf13a6c909b4e714db93ef26d 100644
--- a/libwccl/values/position.h
+++ b/libwccl/values/position.h
@@ -14,17 +14,17 @@ class Position : public Value
 public:
 	WCCL_VALUE_PREAMBLE
 
-	explicit Position(int v = 0)
-		: val_(v)
-	{
-	}
-
 	typedef int value_type;
 
 	static const int Nowhere = boost::integer_traits<int>::const_min;
 	static const int Begin = boost::integer_traits<int>::const_min + 1;
 	static const int End = boost::integer_traits<int>::const_max;
 
+	explicit Position(int v = Nowhere)
+		: val_(v)
+	{
+	}
+
 	const int& get_value() const {
 		return val_;
 	}
diff --git a/tests/variables.cpp b/tests/variables.cpp
index d39cf0f0a439f7670dfa5208cce3f4479a1c1d5f..31079d11a28775eebdae8fe777d0724c6415487d 100644
--- a/tests/variables.cpp
+++ b/tests/variables.cpp
@@ -170,9 +170,9 @@ BOOST_FIXTURE_TEST_CASE(reset_values, Vfix)
 	v.reset_values();
 	BOOST_CHECK_EQUAL(v.get_value<Bool>("b1"), false);
 	BOOST_CHECK_EQUAL(v.get_value<Bool>("b2"), false);
-	BOOST_CHECK_EQUAL(v.get_value<Position>("p1"), 0);
-	BOOST_CHECK_EQUAL(v.get_value<Position>("p2"), 0);
-	BOOST_CHECK_EQUAL(v.get_value<Position>("p3"), 0);
+	BOOST_CHECK_EQUAL(v.get_value<Position>("p1"), Position::Nowhere);
+	BOOST_CHECK_EQUAL(v.get_value<Position>("p2"), Position::Nowhere);
+	BOOST_CHECK_EQUAL(v.get_value<Position>("p3"), Position::Nowhere);
 }
 
 BOOST_FIXTURE_TEST_CASE(clone, Vfix)