diff --git a/CMakeLists.txt b/CMakeLists.txt
index b5f7cdec2f..2b860068b5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -50,15 +50,16 @@ if(NOT DEFINED CMAKE_PREFIX_PATH)
 	endif()
 endif()
 
+add_subdirectory(xs)
+
 if (MSVC)
 	# By default the startup project in MSVC is the 'ALL_BUILD' cmake-created project,
 	# but we want 'slic3r' as the startup one because debugging run command is associated with it.
 	# (Unfortunatelly it cannot be associated with ALL_BUILD using CMake.)
-	set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT slic3r)
+	# Note: For some reason this needs to be set in the top-level CMakeLists.txt
+	set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT XS)
 endif ()
 
-add_subdirectory(xs)
-
 enable_testing ()
 get_filename_component(PERL_BIN_PATH "${PERL_EXECUTABLE}" DIRECTORY)
 add_test (NAME xs COMMAND "${PERL_EXECUTABLE}" ${PERL_BIN_PATH}/prove -I ${PROJECT_SOURCE_DIR}/local-lib/lib/perl5 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/xs)
diff --git a/cmake/msvc/slic3r.wperl64d.props b/cmake/msvc/slic3r.wperl64d.props
deleted file mode 100644
index 68dac2085b..0000000000
--- a/cmake/msvc/slic3r.wperl64d.props
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-  
-    C:\wperl64d\bin\perl.exe
-    slic3r.pl
-    WindowsLocalDebugger
-    ..\..
-  
-
diff --git a/cmake/msvc/xs.wperl64d.props b/cmake/msvc/xs.wperl64d.props
index 101923581e..b604a56e23 100644
--- a/cmake/msvc/xs.wperl64d.props
+++ b/cmake/msvc/xs.wperl64d.props
@@ -8,4 +8,11 @@
   
   
   
+
+  
+    C:\wperl64d\bin\perl.exe
+    slic3r.pl
+    WindowsLocalDebugger
+    ..\..
+  
 
diff --git a/doc/How to build - Windows.md b/doc/How to build - Windows.md
index 8209954bd3..104720b34e 100644
--- a/doc/How to build - Windows.md	
+++ b/doc/How to build - Windows.md	
@@ -50,7 +50,6 @@ and use these commands to build the Slic3r from the command line:
     cd build
     cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
     nmake
-    ctest --verbose    # TODO: ???
     cd ..
     perl slic3r.pl
 
@@ -60,27 +59,34 @@ You may also build Slic3r PE with other build tools:
 
 ### Building with Visual Studio
 
-To build, lanuch and/or debug Slic3r PE with Visual Studio (64 bits), replace the `cmake` command with:
+To build and debug Slic3r PE with Visual Studio (64 bits), replace the `cmake` command with:
 
-    cmake .. -G "Visual Studio 12 Win64" -DCMAKE_CONFIGURATION_TYPES=Release;RelWithDebInfo || exit /b
+    cmake .. -G "Visual Studio 12 Win64" -DCMAKE_CONFIGURATION_TYPES=RelWithDebInfo
 
 For the 32-bit variant, use:
 
-    cmake .. -G "Visual Studio 12" -DCMAKE_CONFIGURATION_TYPES=Release;RelWithDebInfo || exit /b
+    cmake .. -G "Visual Studio 12" -DCMAKE_CONFIGURATION_TYPES=RelWithDebInfo
 
-After `cmake` has finished, go to the `Slic3r\build` directory and open the `Slic3r.sln` solution file.
-This should open Visual Studio and load all the Slic3r solution containing all the projects.
+After `cmake` has finished, go to the build directory and open the `Slic3r.sln` solution file.
+This should open Visual Studio and load the Slic3r solution containing all the projects.
 Make sure you use Visual Studio 2013 to open the solution.
 
-You can then use the usual Visual Studio controls to build Slic3r.
-If you want to run or debug Slic3r from within Visual Studio, make sure the `slic3r` project is activated.
-There are multiple projects in the Slic3r solution, but only the `slic3r` project is configured with the right
-commands to run Slic3r.
+You can then use the usual Visual Studio controls to build Slic3r (Hit `F5` to build and run with debugger).
+If you want to run or debug Slic3r from within Visual Studio, make sure the `XS` project is activated.
+It should be set as the Startup project by CMake by default, but you might want to check anyway.
+There are multiple projects in the Slic3r solution, but only the `XS` project is configured with the right
+commands to run and debug Slic3r.
 
+The above cmake commands generate Visual Studio project files with the `RelWithDebInfo` configuration only.
+If you also want to use the `Release` configuration, you can generate Visual Studio projects with:
+
+    -DCMAKE_CONFIGURATION_TYPES=Release;RelWithDebInfo
+
+(The `Debug` configuration is not supported as of now.)
 
 ### Building with ninja
 
-To use [Ninja](TODO), replace the `cmake` and `nmake` commands with:
+To use [Ninja](https://ninja-build.org/), replace the `cmake` and `nmake` commands with:
 
     cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release
     ninja
diff --git a/doc/deps-build/unix-static/Makefile b/doc/deps-build/unix-static/Makefile
index e7588b9949..71e46320b3 100644
--- a/doc/deps-build/unix-static/Makefile
+++ b/doc/deps-build/unix-static/Makefile
@@ -82,11 +82,11 @@ $(OPENSSL).tar.gz:
 
 libcurl: libopenssl $(CURL).tar.gz
 	tar -zxvf $(CURL).tar.gz
-# XXX: disable shared?
-# Setting PKG_CONFIG_PATH should make libcurl find our previously built openssl
-	cd $(CURL) && PKG_CONFIG_PATH=$(DESTDIR)/usr/local/lib/pkgconfig ./configure \
+#	Note: It seems setting custom openssl path doesn't work when pkg-config and system openssl devel libs are installed
+	cd $(CURL) && ./configure \
 		--enable-static \
 		--enable-shared \
+		--with-ssl=$(DESTDIR)/usr/local \
 		--with-pic \
 		--enable-ipv6 \
 		--enable-versioned-symbols \
diff --git a/resources/localization/list.txt b/resources/localization/list.txt
index 63919ec358..5a6965d6ad 100644
--- a/resources/localization/list.txt
+++ b/resources/localization/list.txt
@@ -1,18 +1,18 @@
-c:\src\Slic3r\xs\src\slic3r\GUI\BedShapeDialog.cpp
-c:\src\Slic3r\xs\src\slic3r\GUI\BedShapeDialog.hpp
-c:\src\Slic3r\xs\src\slic3r\GUI\GUI.cpp
-c:\src\Slic3r\xs\src\slic3r\GUI\Tab.cpp
-c:\src\Slic3r\xs\src\slic3r\GUI\Tab.hpp
-c:\src\Slic3r\xs\src\slic3r\GUI\Field.cpp
-c:\src\Slic3r\xs\src\slic3r\GUI\OptionsGroup.cpp
-c:\src\Slic3r\xs\src\slic3r\GUI\2DBed.cpp
-c:\src\Slic3r\xs\src\slic3r\GUI\PresetHints.cpp
-c:\src\Slic3r\xs\src\slic3r\GUI\Preferences.hpp
-c:\src\Slic3r\xs\src\slic3r\GUI\Preferences.cpp
-C:\src\Slic3r\xs\src\libslic3r\PrintConfig.cpp
-c:\src\Slic3r\xs\src\libslic3r\GCode\PreviewData.cpp
-c:\src\Slic3r\lib\Slic3r\GUI.pm
-c:\src\Slic3r\lib\Slic3r\GUI\MainFrame.pm
-c:\src\Slic3r\lib\Slic3r\GUI\Plater.pm
-c:\src\Slic3r\lib\Slic3r\GUI\Plater\2D.pm
-c:\src\Slic3r\lib\Slic3r\GUI\Plater\3DPreview.pm
+xs/src/slic3r/GUI/BedShapeDialog.cpp
+xs/src/slic3r/GUI/BedShapeDialog.hpp
+xs/src/slic3r/GUI/GUI.cpp
+xs/src/slic3r/GUI/Tab.cpp
+xs/src/slic3r/GUI/Tab.hpp
+xs/src/slic3r/GUI/Field.cpp
+xs/src/slic3r/GUI/OptionsGroup.cpp
+xs/src/slic3r/GUI/2DBed.cpp
+xs/src/slic3r/GUI/PresetHints.cpp
+xs/src/slic3r/GUI/Preferences.hpp
+xs/src/slic3r/GUI/Preferences.cpp
+xs/src/libslic3r/PrintConfig.cpp
+xs/src/libslic3r/GCode/PreviewData.cpp
+lib/Slic3r/GUI.pm
+lib/Slic3r/GUI/MainFrame.pm
+lib/Slic3r/GUI/Plater.pm
+lib/Slic3r/GUI/Plater/2D.pm
+lib/Slic3r/GUI/Plater/3DPreview.pm
diff --git a/xs/CMakeLists.txt b/xs/CMakeLists.txt
index 590b5d24fa..ce16a08f5c 100644
--- a/xs/CMakeLists.txt
+++ b/xs/CMakeLists.txt
@@ -626,15 +626,19 @@ elseif (NOT MSVC)
 endif ()
 
 if (MSVC)
-    # Here we associate some additional properties with the MSVC projects to enable compilation and debugging out of the box.
-    # It seems a props file needs to be copied to the same dir as the proj file, otherwise MSVC doesn't load it up.
-    # For copying, the configure_file() function seems to work much better than the file() function.
-    configure_file("${PROJECT_SOURCE_DIR}/cmake/msvc/xs.wperl64d.props" ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
-    set_target_properties(XS PROPERTIES VS_USER_PROPS "xs.wperl64d.props")
-    configure_file("${PROJECT_SOURCE_DIR}/cmake/msvc/slic3r.wperl64d.props" ${CMAKE_CURRENT_BINARY_DIR} COPYONLY)
-    set_target_properties(slic3r PROPERTIES VS_USER_PROPS "slic3r.wperl64d.props")
-endif ()
+    # Here we associate some additional properties with the MSVC project to enable compilation and debugging out of the box.
+    set_target_properties(XS PROPERTIES VS_USER_PROPS "${PROJECT_SOURCE_DIR}/cmake/msvc/xs.wperl64d.props")
+endif()
 
+# l10n
+set(L10N_DIR "${PROJECT_SOURCE_DIR}/resources/localization")
+add_custom_target(pot
+    COMMAND xgettext --keyword=L --from-code=UTF-8 --debug
+        -f "${L10N_DIR}/list.txt"
+        -o "${L10N_DIR}/Slic3rPE.pot"
+    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
+    COMMENT "Generate pot file from strings in the source tree"
+)
 
 # Installation
 install(TARGETS XS DESTINATION ${PERL_VENDORARCH}/auto/Slic3r/XS)