diff --git a/libwccl/values/position.cpp b/libwccl/values/position.cpp
index c3ecda5baa9c8b231471693b29fce11e3dde07da..5be0a85b2be1d03e3b48cbad9ff35801e4302899 100644
--- a/libwccl/values/position.cpp
+++ b/libwccl/values/position.cpp
@@ -6,9 +6,15 @@ namespace Wccl {
 
 const char* Position::type_name = "Position";
 
+#ifndef _MSC_VER
+//If you're strict about standards, if you want to use
+//integral or enum static consts in a program, you still
+//have to define them even if the declaration has an initializer.
+//Well, at least GCC is strict about it.
 const int Position::Nowhere;
 const int Position::End;
 const int Position::Begin;
+#endif
 
 std::string Position::to_raw_string() const
 {