Index: C:/Documents and Settings/UserXP/My Documents/mixxx/src/midimapping.cpp
===================================================================
--- C:/Documents and Settings/UserXP/My Documents/mixxx/src/midimapping.cpp	(revision 2692)
+++ C:/Documents and Settings/UserXP/My Documents/mixxx/src/midimapping.cpp	(working copy)
@@ -337,7 +337,7 @@
         }
 
         // Load Script files
-        ConfigObject<ConfigValue> *m_pConfig = new ConfigObject<ConfigValue>(QDir::homePath().append("/").append(SETTINGS_FILE));
+        ConfigObject<ConfigValue> *m_pConfig = new ConfigObject<ConfigValue>(QDir::homePath().append("/").append(SETTINGS_PATH).append(SETTINGS_FILE));
 
         qDebug() << "MidiMapping: Loading & evaluating all MIDI script code";
 
Index: C:/Documents and Settings/UserXP/My Documents/mixxx/src/dlgprefbpm.cpp
===================================================================
--- C:/Documents and Settings/UserXP/My Documents/mixxx/src/dlgprefbpm.cpp	(revision 2692)
+++ C:/Documents and Settings/UserXP/My Documents/mixxx/src/dlgprefbpm.cpp	(working copy)
@@ -294,9 +294,7 @@
     QFile scheme(config->getValueString(ConfigKey("[BPM]","SchemeFile")));
     if ((config->getValueString(ConfigKey("[BPM]","SchemeFile")).length()<1) || (!scheme.exists()))
     {
-        config->set(ConfigKey("[BPM]","SchemeFile"), QDir::homePath().append("/").append(
-			BPMSCHEME_FILE
-		));
+        config->set(ConfigKey("[BPM]","SchemeFile"), QDir::homePath().append("/").append(SETTINGS_PATH).append(BPMSCHEME_FILE));
         config->Save();
     }
     
Index: C:/Documents and Settings/UserXP/My Documents/mixxx/src/script/scriptengine.cpp
===================================================================
--- C:/Documents and Settings/UserXP/My Documents/mixxx/src/script/scriptengine.cpp	(revision 2692)
+++ C:/Documents and Settings/UserXP/My Documents/mixxx/src/script/scriptengine.cpp	(working copy)
@@ -212,6 +212,6 @@
 }
 
 QFile* ScriptEngine::getMacroFile() {
-	QString path = QDir::home().absFilePath(".mixxxmacro.xml");
+        QString path = QDir::homePath().append("/").append(SETTINGS_PATH).append(".mixxxmacro.xml");
 	return new QFile(path);
 }
Index: C:/Documents and Settings/UserXP/My Documents/mixxx/src/script/scriptstudio.cpp
===================================================================
--- C:/Documents and Settings/UserXP/My Documents/mixxx/src/script/scriptstudio.cpp	(revision 2692)
+++ C:/Documents and Settings/UserXP/My Documents/mixxx/src/script/scriptstudio.cpp	(working copy)
@@ -20,12 +20,12 @@
 #define MIXXXMACRODIR ".mixxxmacros"
 
 void ScriptStudio::fillTree() {
-	QString path = QDir::home().absoluteFilePath(MIXXXMACRODIR);
+        QString path = QDir::home().QDir::homePath().append("/").append(SETTINGS_PATH).append(MIXXXMACRODIR);
 	QDir topdir(path);
 	if (!topdir.exists()) {
-		QDir::home().mkdir(MIXXXMACRODIR);
+                QDir().mkdir(path);
 	}
-	        
+
 	QDirModel *model = new QDirModel();
     treeView->setModel(model);
 	treeView->setRootIndex(model->index(path));
Index: C:/Documents and Settings/UserXP/My Documents/mixxx/src/mixxx.cpp
===================================================================
--- C:/Documents and Settings/UserXP/My Documents/mixxx/src/mixxx.cpp	(revision 2692)
+++ C:/Documents and Settings/UserXP/My Documents/mixxx/src/mixxx.cpp	(working copy)
@@ -89,9 +89,8 @@
     m_pTrack = 0;
     prefDlg = 0;
     midi = 0;
-
     // Read the config file from home directory
-    config = new ConfigObject<ConfigValue>(QDir::homePath().append("/").append(SETTINGS_FILE));
+    config = new ConfigObject<ConfigValue>(QDir::homePath().append("/").append(SETTINGS_PATH).append(SETTINGS_FILE));
     QString qConfigPath = config->getConfigPath();
 
 #ifdef __C_METRICS__
@@ -213,7 +212,8 @@
     QFile trackfile(config->getValueString(ConfigKey("[Playlist]","Listfile")));
     if ((config->getValueString(ConfigKey("[Playlist]","Listfile")).length()<1) || (!trackfile.exists()))
     {
-        config->set(ConfigKey("[Playlist]","Listfile"), QDir::homePath().append("/").append(TRACK_FILE));
+        qDebug() << "SETTINGS_PATH: " << SETTINGS_PATH;
+        config->set(ConfigKey("[Playlist]","Listfile"), QDir::homePath().append("/").append(SETTINGS_PATH).append(TRACK_FILE));
         config->Save();
     }
 
Index: C:/Documents and Settings/UserXP/My Documents/mixxx/mixxx.pro
===================================================================
--- C:/Documents and Settings/UserXP/My Documents/mixxx/mixxx.pro	(revision 2692)
+++ C:/Documents and Settings/UserXP/My Documents/mixxx/mixxx.pro	(working copy)
@@ -2,9 +2,13 @@
 DEFINES += QMAKE \ # define QMAKE for not-SCons specific ifdefs like ui_scriptstudio.h
     __PORTAUDIO__ \
     __SNDFILE__ \
+    SETTINGS_FILE=\\\".mixxx.cfg\\\" \
     BPMSCHEME_FILE=\\\".mixxxbpmscheme.xml\\\" \
-    SETTINGS_FILE=\\\".mixxx.cfg\\\" \
     TRACK_FILE=\\\".mixxxtrack.xml\\\"
+win32:DEFINES += 'SETTINGS_PATH=\\\"Local_Settings/Application_Data/Mixxx/\\\"' # Must include trailing slash
+
+!win32:DEFINES += SETTINGS_PATH=\\\"\\\"
+
 TEMPLATE = app
 TARGET = mixxx
 QT += core \
@@ -49,7 +53,8 @@
     $$UI_DIR/ui_dlgprefrecorddlg.h \
     $$UI_DIR/ui_dlgprefshoutcastdlg.h \
     $$UI_DIR/ui_dlgprefsounddlg.h \
-    $$UI_DIR/ui_dlgprefvinyldlg.h
+    $$UI_DIR/ui_dlgprefvinyldlg.h \
+    $$UI_DIR/ui_dlgprefnomididlg.h
 
 INCLUDEPATH += src \
 #    lib/soundtouch \
@@ -154,9 +159,9 @@
     src/dlgprefcrossfader.h \
     src/dlgprefeq.h \
     src/dlgpreferences.h \
-#    src/dlgprefmidi.h \
     src/dlgprefmidibindings.h \
 #    src/dlgprefmididevice.h \
+    src/dlgprefnomidi.h \
     src/dlgprefplaylist.h \
     src/dlgprefsound.h \
     src/fakemonitor.h \
@@ -325,9 +330,9 @@
     src/dlgprefcrossfader.cpp \
     src/dlgprefeq.cpp \
     src/dlgpreferences.cpp \
-#    src/dlgprefmidi.cpp \
     src/dlgprefmidibindings.cpp \
 #    src/dlgprefmididevice.cpp \
+    src/dlgprefnomidi.cpp \
     src/dlgprefplaylist.cpp \
     src/dlgprefsound.cpp \
     src/fakemonitor.cpp \
@@ -447,7 +452,9 @@
 #    src/dlgprefmididlg.ui \
     src/dlgprefplaylistdlg.ui \
     src/dlgprefsounddlg.ui \
-    src/dlgprefvinyldlg.ui
+    src/dlgprefvinyldlg.ui \
+    src/dlgprefnomididlg.ui
+
 RESOURCES += res/mixxx.qrc
 HEADERS += src/recording/defs_recording.h \
     src/recording/enginerecord.h \