diff -aurN 000/SConstruct 001/SConstruct
--- 000/SConstruct
+++ 001/SConstruct
@@ -122,10 +122,10 @@
 	'relocatable': {
 		'dest': '',
 		'prefix': '',
-		'conf': '$PREFIX',
-		'bin': '$PREFIX',
-		'data': '$PREFIX',
-		'doc': '$PREFIX'
+		'conf': '$PREFIX/etc',
+		'bin': '$PREFIX/bin',
+		'data': '$PREFIX/share/nsis',
+		'doc': '$PREFIX/share/doc/nsis'
 	},
 	'static': {
 		'dest': '',
@@ -190,7 +190,7 @@
 opts.Add(('PREFIX_DEST', 'Intermediate installation prefix (extra install time prefix)', dirs['dest']))
 opts.Add(('PREFIX_CONF', 'Path to install nsisconf.nsh to', dirs['conf']))
 opts.Add(('PREFIX_BIN', 'Path to install native binaries to', dirs['bin']))
-opts.Add(('PREFIX_DATA', 'Path to install nsis data to (plugins, includes, stubs, contrib, win32 binaries)', dirs['data']))
+opts.Add(('PREFIX_DATA', 'Path to install nsis data to (plugins, includes, stubs, contrib)', dirs['data']))
 opts.Add(('PREFIX_DOC','Path to install nsis README / INSTALL / TODO files to.', dirs['doc']))
 opts.Add(('PREFIX_PLUGINAPI_INC','Path to install plugin API headers to.', None))
 opts.Add(('PREFIX_PLUGINAPI_LIB','Path to install plugin static library to.', None))
@@ -399,7 +399,7 @@
 	return defenv.Distribute(files, names, 'conf', '', path, alias)
 
 def DistributeW32Bin(files, names=[], path='', alias=None):
-	return defenv.Distribute(files, names, 'data', 'Bin', path, alias, 'w32bin')
+	return defenv.Distribute(files, names, 'bin', '', path, alias, 'w32bin')
 
 def DistributeStubs(files, names=[], path='', alias=None):
 	return defenv.Distribute(files, names, 'data', 'Stubs', path, alias, 'stubs')
diff -aurN 000/Source/build.cpp 001/Source/build.cpp
--- 000/Source/build.cpp
+++ 001/Source/build.cpp
@@ -395,7 +395,9 @@
   if (dir) nsis_dir = dir;
   else {
 #ifndef NSIS_CONFIG_CONST_DATA_PATH
-    nsis_dir = get_dir_name(get_executable_dir(makensis_path));
+    nsis_dir = get_dir_name(get_executable_dir(makensis_path))
+      + PLATFORM_PATH_SEPARATOR_STR + _TEXT("share")
+      + PLATFORM_PATH_SEPARATOR_STR + _TEXT("nsis");
 #else
     nsis_dir = _T(PREFIX_DATA);
 #endif
diff -aurN 000/Source/makenssi.cpp 001/Source/makenssi.cpp
--- 000/Source/makenssi.cpp
+++ 001/Source/makenssi.cpp
@@ -572,7 +572,8 @@
         TCHAR* env_var = _tgetenv(_T("NSISCONFDIR"));
         if(env_var == NULL)
 #ifndef NSIS_CONFIG_CONST_DATA_PATH
-          main_conf = get_dir_name(get_executable_dir(argv[0]));
+          main_conf = get_dir_name(get_executable_dir(argv[0]))
+            + PLATFORM_PATH_SEPARATOR_STR + _TEXT("etc");
 #else
           main_conf = _T(PREFIX_CONF);
 #endif
