winecfg: Support for setting symlinks for 'Desktop' and 'My Stuff' shell folders.
diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc
index f78f182..88b63a9 100644
--- a/programs/winecfg/Bg.rc
+++ b/programs/winecfg/Bg.rc
@@ -175,17 +175,24 @@
     CONTROL         "Ñîôòóåðíà åìóëàöèÿ",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Òåìà:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Èíñòàëèðàé òåìà...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Öâÿò:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Ðàçìåð:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Òåìà:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Èíñòàëèðàé òåìà...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Öâÿò:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Ðàçìåð:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folder ",IDC_STATIC,8,114,244,100
+    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
+                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
+    CONTROL         "Link to:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
+    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
+    PUSHBUTTON      "Browse",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
 END
 
 STRINGTABLE DISCARDABLE
@@ -199,13 +206,15 @@
     IDS_SHOW_ADVANCED       "Ïîêàæè äîïúëíèòåëíèòå"
     IDS_NOTHEME             "(áåç òåìà)"
     IDS_TAB_GRAPHICS        "Ãðàôèêà"
-    IDS_TAB_APPEARANCE      "Âúíøåí âèä"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Çâóê"
     IDS_TAB_ABOUT           "Îòíîñíî"
     IDS_WINECFG_TITLE       "Íàñòðîéêà íà Wine"
     IDS_THEMEFILE           "Ôàéëîâå ñ òåìè"
     IDS_THEMEFILE_SELECT    "Èçáåðåòå ôàéë ñ òåìà"
     IDS_AUDIO_MISSING       "Íÿìà íàñòðîåí çâóêîâ äðàéâåð.\n\nÇà âàñ áåøå èçáðàí äðàéâåð ïî ïîäðàçáèðàíå.\nÌîæå äà ãî èçïîëçâàòå èëè äà èçáåðåòå äðóã.\n\nÒðÿáâà äà ùðàêíåòå íà Ïîòâúðäè, çà äà âëåçå â ñèëà èçáîðà."
+    IDS_SHELL_FOLDER        "Shell Folder"
+    IDS_LINKS_TO            "Links to"
 END
 
 STRINGTABLE DISCARDABLE
diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc
index 75eacf6..d8b5e54 100644
--- a/programs/winecfg/De.rc
+++ b/programs/winecfg/De.rc
@@ -169,17 +169,24 @@
     CONTROL         "Treiber Emulation",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Motiv:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Motiv installieren...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Farbe:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Größe:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+   GROUPBOX        " Darstellung ",IDC_STATIC,8,4,244,106
+   LTEXT           "Motiv:",IDC_STATIC,15,16,230,8
+   COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+   PUSHBUTTON      "Motiv installieren...",IDC_THEME_INSTALL,152,38,93,14
+   LTEXT           "Farbe:",IDC_THEME_COLORTEXT,15,54,230,8
+   COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+   LTEXT           "Größe:",IDC_THEME_SIZETEXT,15,80,230,8
+   COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+   GROUPBOX        " Shell Ordner ",IDC_STATIC,8,114,244,100
+   CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
+                    LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
+   CONTROL         "Verknüpfe:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
+   EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
+   PUSHBUTTON      "Wählen",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
 END
 
 STRINGTABLE DISCARDABLE
@@ -188,18 +195,20 @@
     IDS_TAB_APPLICATIONS    "Anwendungen"
     IDS_TAB_DLLS            "Bibliotheken"
     IDS_TAB_DRIVES          "Laufwerke"
-    IDS_CHOOSE_PATH         "Bitte wählen Sie ein Unix-Verzeichnis für das Laufwerk."
+    IDS_CHOOSE_PATH         "Bitte wählen Sie das Ziel-Unix-Verzeichnis."
     IDS_HIDE_ADVANCED       "Verstecke Erweitert"
     IDS_SHOW_ADVANCED       "Zeige Erweitert"
     IDS_NOTHEME             "(Kein Motiv)"
     IDS_TAB_GRAPHICS        "Grafik"
-    IDS_TAB_APPEARANCE      "Darstellung"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Audio"
     IDS_TAB_ABOUT           "Über"
     IDS_WINECFG_TITLE       "Wine-Konfiguration"
     IDS_THEMEFILE           "Motiv-Dateien"
     IDS_THEMEFILE_SELECT    "Motiv-Datei auswählen"
     IDS_AUDIO_MISSING       "Zur Zeit ist kein Audio Treiber in der Registry eingetragen.\n\nEin bevorzugter Treiber wurde für Sie ausgewählt.\nSie können diesen Treiber nutzen oder einen anderen auswählen, sofern dieser vorhanden ist.\n\nSie müssen auf Anwenden klicken, damit die Änderung übernommen wird."
+    IDS_SHELL_FOLDER        "Shell Ordner"
+    IDS_LINKS_TO            "Verknüpft mit"
 END
 
 STRINGTABLE DISCARDABLE
diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc
index 22bdeb0..482a589 100644
--- a/programs/winecfg/En.rc
+++ b/programs/winecfg/En.rc
@@ -171,17 +171,24 @@
     CONTROL         "Driver Emulation",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Theme:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Install theme...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Color:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Size:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Theme:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Install theme...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Color:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Size:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folder ",IDC_STATIC,8,114,244,100
+    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
+                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
+    CONTROL         "Link to:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
+    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
+    PUSHBUTTON      "Browse",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
 END
 
 STRINGTABLE DISCARDABLE
@@ -190,18 +197,20 @@
     IDS_TAB_APPLICATIONS    "Applications"
     IDS_TAB_DLLS            "Libraries"
     IDS_TAB_DRIVES          "Drives"
-    IDS_CHOOSE_PATH         "Select the unix directory to be mapped, please."
+    IDS_CHOOSE_PATH         "Select the unix target directory, please."
     IDS_HIDE_ADVANCED       "Hide Advanced"
     IDS_SHOW_ADVANCED       "Show Advanced"
     IDS_NOTHEME             "(No Theme)"
     IDS_TAB_GRAPHICS        "Graphics"
-    IDS_TAB_APPEARANCE      "Appearance"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Audio"
     IDS_TAB_ABOUT           "About"
     IDS_WINECFG_TITLE       "Wine configuration"
     IDS_THEMEFILE           "Theme files"
     IDS_THEMEFILE_SELECT    "Select a theme file"
     IDS_AUDIO_MISSING       "There is no audio driver currently specified in the registry.\n\nA recommended driver has been selected for you.\nYou can use this driver or select another driver if available.\n\nYou must click Apply for the selection to take effect."
+    IDS_SHELL_FOLDER        "Shell Folder"
+    IDS_LINKS_TO            "Links to"
 END
 
 STRINGTABLE DISCARDABLE
@@ -249,15 +258,22 @@
     CONTROL         "Allow Pixel Shader (if supported by hardware)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,144,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-LTEXT           "Theme:",IDC_STATIC,8,10,244,8
-COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-PUSHBUTTON      "Install theme...",IDC_THEME_INSTALL,152,32,100,14
-LTEXT           "Colour:",IDC_THEME_COLORTEXT,8,48,244,8
-COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-LTEXT           "Size:",IDC_THEME_SIZETEXT,8,74,244,8
-COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Theme:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Install theme...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Colour:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Size:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folder ",IDC_STATIC,8,114,244,100
+    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
+                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
+    CONTROL         "Link to:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
+    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
+    PUSHBUTTON      "Browse",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
 END
diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc
index 28d2324..e86159b 100644
--- a/programs/winecfg/Es.rc
+++ b/programs/winecfg/Es.rc
@@ -169,17 +169,24 @@
     CONTROL         "Emulación del manejador",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Tema:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Instalar tema...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Color:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Tamaño:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Tema:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Instalar tema...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Color:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Tamaño:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folder ",IDC_STATIC,8,114,244,100
+    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
+                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
+    CONTROL         "Link to:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
+    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
+    PUSHBUTTON      "Browse",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
 END
 
 STRINGTABLE DISCARDABLE
@@ -188,16 +195,18 @@
     IDS_TAB_APPLICATIONS    "Aplicaciones"
     IDS_TAB_DLLS            "Librerías"
     IDS_TAB_DRIVES          "Unidades"
-    IDS_CHOOSE_PATH         "Seleccione el directorio de unix para mapear."
+    IDS_CHOOSE_PATH         "Select the unix target directory, please."
     IDS_HIDE_ADVANCED       "Ocultar avanzado"
     IDS_SHOW_ADVANCED       "Mostrar avanzado"
     IDS_NOTHEME             "(Ningún tema)"
     IDS_TAB_GRAPHICS        "Gráficos"
-    IDS_TAB_APPEARANCE      "Apariencia"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Audio"
     IDS_TAB_ABOUT           "Acerca de"
     IDS_WINECFG_TITLE       "Configuración de Wine"
     IDS_THEMEFILE           "Ficheros de tema"
     IDS_THEMEFILE_SELECT    "Seleccione un fichero de tema"
     IDS_AUDIO_MISSING       "Actualmente no hay ningún manejador de audio especificado en el registro.\n\nSe ha seleccionado un manejador recomendado para usted. Puede usar este manejador o seleccionar otro manejador disponible.\n\nDebe pulsar Aplicar para que la selección surja efecto."
+    IDS_SHELL_FOLDER        "Shell Folder"
+    IDS_LINKS_TO            "Links to"
 END
diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc
index 2f16e77..436d474 100644
--- a/programs/winecfg/Fi.rc
+++ b/programs/winecfg/Fi.rc
@@ -165,17 +165,24 @@
     CONTROL         "Ajurin &emulointi",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Teema:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Asenna &teema...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Väri:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Koko:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Teema:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Asenna &teema...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Väri:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Koko:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folder ",IDC_STATIC,8,114,244,100
+    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
+                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
+    CONTROL         "Link to:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
+    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
+    PUSHBUTTON      "Browse",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
 END
 
 STRINGTABLE DISCARDABLE
@@ -184,15 +191,17 @@
     IDS_TAB_APPLICATIONS    "Sovellukset"
     IDS_TAB_DLLS            "Kirjastot"
     IDS_TAB_DRIVES          "Asemat"
-    IDS_CHOOSE_PATH         "Valitse mapattava unix -kansio."
+    IDS_CHOOSE_PATH         "Select the unix target directory, please."
     IDS_HIDE_ADVANCED       "Piilota lisäasetukset"
     IDS_SHOW_ADVANCED       "Näytä lisäasetukset"
     IDS_NOTHEME             "(Ei Teemaa)"
     IDS_TAB_GRAPHICS        "Grafiikka"
-    IDS_TAB_APPEARANCE      "Ulkoasu"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Ääni"
     IDS_TAB_ABOUT           "Tietoja"
     IDS_WINECFG_TITLE       "Winen asetukset"
     IDS_THEMEFILE           "Teema -tiedostot"
     IDS_THEMEFILE_SELECT    "Valitse teeman tiedosto"
+    IDS_SHELL_FOLDER        "Shell Folder"
+    IDS_LINKS_TO            "Links to"
 END
diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc
index 9367176..e73bd92 100644
--- a/programs/winecfg/Fr.rc
+++ b/programs/winecfg/Fr.rc
@@ -167,17 +167,24 @@
     CONTROL         "Emulation pilote",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Thème:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Installer un thème...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Couleur:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Taille:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Thème:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Installer un thème...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Couleur:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Taille:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folder ",IDC_STATIC,8,114,244,100
+    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
+                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
+    CONTROL         "Link to:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
+    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
+    PUSHBUTTON      "Browse",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
 END
 
 STRINGTABLE DISCARDABLE
@@ -186,15 +193,17 @@
     IDS_TAB_APPLICATIONS    "Applications"
     IDS_TAB_DLLS            "Bibliothèques"
     IDS_TAB_DRIVES          "Lecteurs"
-    IDS_CHOOSE_PATH         "Veuillez sélectionner le répertoire unix à assigner."
+    IDS_CHOOSE_PATH         "Select the unix target directory, please."
     IDS_HIDE_ADVANCED       "Cacher avancés"
     IDS_SHOW_ADVANCED       "Montrer avancés"
     IDS_NOTHEME             "(Pas de thème)"
     IDS_TAB_GRAPHICS        "Affichage"
-    IDS_TAB_APPEARANCE      "Apparence"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Audio"
     IDS_TAB_ABOUT           "A propos"
     IDS_WINECFG_TITLE       "Configuration de Wine"
     IDS_THEMEFILE           "Fichiers de thèmes"
     IDS_THEMEFILE_SELECT    "Sélectionnez un fichier de thème"
+    IDS_SHELL_FOLDER        "Shell Folder"
+    IDS_LINKS_TO            "Links to"
 END
diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc
index fe656d5..11854cb 100644
--- a/programs/winecfg/Ja.rc
+++ b/programs/winecfg/Ja.rc
@@ -168,17 +168,24 @@
     CONTROL         "ƒhƒ‰ƒCƒoEƒGƒ~ƒ…ƒŒ[ƒVƒ‡ƒ“",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 9, "MS UI Gothic"
 BEGIN
-    LTEXT           "ƒe[ƒ}:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "ƒe[ƒ}‚̃Cƒ“ƒXƒg[ƒ‹...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "”zF:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "ƒTƒCƒY:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "ƒe[ƒ}:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "ƒe[ƒ}‚̃Cƒ“ƒXƒg[ƒ‹...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "”zF:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "ƒTƒCƒY:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folder ",IDC_STATIC,8,114,244,100
+    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
+                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
+    CONTROL         "Link to:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
+    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
+    PUSHBUTTON      "Browse",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
 END
 
 STRINGTABLE DISCARDABLE
@@ -187,15 +194,17 @@
     IDS_TAB_APPLICATIONS    "ƒAƒvƒŠƒP[ƒVƒ‡ƒ“"
     IDS_TAB_DLLS            "ƒ‰ƒCƒuƒ‰ƒŠ"
     IDS_TAB_DRIVES          "ƒhƒ‰ƒCƒu"
-    IDS_CHOOSE_PATH         "ƒ}ƒbƒsƒ“ƒO‚·‚éUnixƒfƒBƒŒƒNƒgƒŠ[‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢"
+    IDS_CHOOSE_PATH         "Select the unix target directory, please."
     IDS_HIDE_ADVANCED       "Ú×‚ð‰B‚·"
     IDS_SHOW_ADVANCED       "Ú×‚ð•\ަ"
     IDS_NOTHEME             "(ƒe[ƒ}–³‚µ)"
     IDS_TAB_GRAPHICS        "‰æ–Ê"
-    IDS_TAB_APPEARANCE      "ŠOŠÏ"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "ƒI[ƒfƒBƒI"
     IDS_TAB_ABOUT           "Wine‚ɂ‚¢‚Ä"
     IDS_WINECFG_TITLE       "WineÝ’è"
     IDS_THEMEFILE           "ƒe[ƒ}ƒtƒ@ƒCƒ‹"
     IDS_THEMEFILE_SELECT    "ƒe[ƒ}ƒtƒ@ƒCƒ‹‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢"
+    IDS_SHELL_FOLDER        "Shell Folder"
+    IDS_LINKS_TO            "Links to"
 END
diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc
index 92ef734..e132825 100644
--- a/programs/winecfg/Ko.rc
+++ b/programs/winecfg/Ko.rc
@@ -173,17 +173,24 @@
     CONTROL         "µå¶óÀ̹ö ¾Ö¹Ä",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Å׸¶:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Å׸¶ ¼³Ä¡...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "»ö»ó:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Å©±â:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Å׸¶:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Å׸¶ ¼³Ä¡...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "»ö»ó:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Å©±â:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folder ",IDC_STATIC,8,114,244,100
+    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
+                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
+    CONTROL         "Link to:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
+    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
+    PUSHBUTTON      "Browse",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
 END
 
 STRINGTABLE DISCARDABLE
@@ -192,12 +199,12 @@
     IDS_TAB_APPLICATIONS    "Ç®±×¸²"
     IDS_TAB_DLLS            "¶óÀ̺귯¸®"
     IDS_TAB_DRIVES          "µå¶óÀ̺ê"
-    IDS_CHOOSE_PATH         "¸ÊÇÎÇÒ À¯´Ð½º µð·ºÅ丮¸¦ ¼±ÅÃÇϽÿÀ."
+    IDS_CHOOSE_PATH         "Select the unix target folder, please."
     IDS_HIDE_ADVANCED       "Ãß°¡ ¿É¼Ç ¼û±â±â"
     IDS_SHOW_ADVANCED       "Ãß°¡ ¿É¼Ç º¸¿©ÁÖ±â"
     IDS_NOTHEME             "(Å׸¶ ¾øÀ½)"
     IDS_TAB_GRAPHICS        "±×·¡ÇÈ"
-    IDS_TAB_APPEARANCE      "¿Ü¾ç"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "¿Àµð¿À"
     IDS_TAB_ABOUT           "Á¤º¸"
     IDS_WINECFG_TITLE       "Wine ¼³Á¤"
@@ -215,4 +222,6 @@
     IDS_DLL_NATIVE_BUILTIN  "³×ÀÌÆ¼ºê, ³»Àå"
     IDS_DLL_BUILTIN_NATIVE  "³»Àå, ³×ÀÌÆ¼ºê"
     IDS_DLL_DISABLED        "ºÒ°¡´É"
+    IDS_SHELL_FOLDER        "Shell Folder"
+    IDS_LINKS_TO            "Links to"
 END
diff --git a/programs/winecfg/Makefile.in b/programs/winecfg/Makefile.in
index 7aa1136..5d03871 100644
--- a/programs/winecfg/Makefile.in
+++ b/programs/winecfg/Makefile.in
@@ -5,6 +5,7 @@
 MODULE    = winecfg.exe
 APPMODE   = -mwindows
 IMPORTS   = comdlg32 comctl32 shell32 ole32 winmm shlwapi uxtheme user32 gdi32 advapi32 kernel32
+EXTRALIBS = -luuid
 
 C_SRCS = \
 	appdefaults.c \
diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc
index 564e175..e935695 100644
--- a/programs/winecfg/Nl.rc
+++ b/programs/winecfg/Nl.rc
@@ -171,17 +171,24 @@
     CONTROL         "Stuurprogramma emulatie",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Thema:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Thema installeren...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Kleuren:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Tekstgrootte:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Thema:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Thema installeren...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Kleuren:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Tekstgrootte:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folder ",IDC_STATIC,8,114,244,100
+    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
+                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
+    CONTROL         "Link to:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
+    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
+    PUSHBUTTON      "Browse",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
 END
 
 STRINGTABLE DISCARDABLE
@@ -190,18 +197,20 @@
     IDS_TAB_APPLICATIONS    "Toepassingen"
     IDS_TAB_DLLS            "Bibliotheken"
     IDS_TAB_DRIVES          "Stations"
-    IDS_CHOOSE_PATH         "Selecteer een unix folder voor dit station."
+    IDS_CHOOSE_PATH         "Select the unix target folder, please."
     IDS_HIDE_ADVANCED       "Verberg uitgebreid"
     IDS_SHOW_ADVANCED       "Toon uitgebreid"
     IDS_NOTHEME             "(Geen Thema)"
     IDS_TAB_GRAPHICS        "Graphics" /* FIXME */
-    IDS_TAB_APPEARANCE      "Vormgeving"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Audio"
     IDS_TAB_ABOUT           "Info"
     IDS_WINECFG_TITLE       "Wine configuratie"
     IDS_THEMEFILE           "Thema-bestanden"
     IDS_THEMEFILE_SELECT    "Thema-bestanden kiezen"
     IDS_AUDIO_MISSING       "Op dit moment is er geen audio stuurbestand gespecificeerd in de registry.\n\nEen aanbevolen stuurbestand is voor u geselecteerd.\nU kunt dit stuurbestand gebruiken of (indien beschikbaar) een ander selecteren.\n\nKlik op 'Toepassen' om deze selectie te activeren."
+    IDS_SHELL_FOLDER        "Shell Folder"
+    IDS_LINKS_TO            "Links to"
 END
 
 STRINGTABLE DISCARDABLE
diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc
index 1313c57..feb4b61 100644
--- a/programs/winecfg/No.rc
+++ b/programs/winecfg/No.rc
@@ -168,17 +168,24 @@
     CONTROL         "Driveremulering",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-LTEXT           "Tema:",IDC_STATIC,8,10,244,8
-COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Installer tema . . .",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Farge:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Størrelse:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Tema:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Installer tema . . .",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Farge:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Størrelse:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folder ",IDC_STATIC,8,114,244,100
+    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
+                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
+    CONTROL         "Link to:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
+    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
+    PUSHBUTTON      "Browse",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
 END
 
 STRINGTABLE DISCARDABLE
@@ -187,19 +194,21 @@
     IDS_TAB_APPLICATIONS    "Programmer"
     IDS_TAB_DLLS            "Biblioteker"
     IDS_TAB_DRIVES          "Stasjoner"
-    IDS_CHOOSE_PATH         "Velg Unix-katalogens som skal kartlegges."
+    IDS_CHOOSE_PATH         "Select the unix target folder, please."
     IDS_HIDE_ADVANCED       "Enkel visning"
     IDS_SHOW_ADVANCED       "Avansert visning"
     IDS_NOTHEME             "(Intet tema)"
     IDS_TAB_GRAPHICS        "Grafikk"
-    IDS_TAB_APPEARANCE      "Utseende"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Lyd"
     IDS_TAB_ABOUT           "Om"
     IDS_WINECFG_TITLE       "Oppsett av Wine"
     IDS_THEMEFILE           "Temafiler"
     IDS_THEMEFILE_SELECT    "Velg en temafil"
     IDS_AUDIO_MISSING       "Ingen lyddriver er oppgitt i registeret.\n\nEn anbefalt driver er valgt for deg;\nbruk den eller velg en annen,\n\nog trykk «Bruk» for at endringene skal tre i kraft."
-    END
+    IDS_SHELL_FOLDER        "Shell Folder"
+    IDS_LINKS_TO            "Links to"
+END
     
     STRINGTABLE DISCARDABLE
     BEGIN
diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc
index 6144ab0..125a011 100644
--- a/programs/winecfg/Ru.rc
+++ b/programs/winecfg/Ru.rc
@@ -170,17 +170,24 @@
     CONTROL         "Ïðîãðàììíàÿ ýìóëÿöèÿ",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Òåìà:",IDC_STATIC,15,5,228,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,15,13,228,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Óñòàíîâèòü òåìó...",IDC_THEME_INSTALL,152,32,90,14
-    LTEXT           "Öâåò:",IDC_THEME_COLORTEXT,15,48,228,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,15,56,228,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Ðàçìåð:",IDC_THEME_SIZETEXT,15,74,228,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,15,82,228,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Òåìà:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Óñòàíîâèòü òåìó...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Öâåò:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Ðàçìåð:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folder ",IDC_STATIC,8,114,244,100
+    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
+                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
+    CONTROL         "Link to:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
+    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
+    PUSHBUTTON      "Browse",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
 END
 
 STRINGTABLE DISCARDABLE
@@ -189,15 +196,17 @@
     IDS_TAB_APPLICATIONS    "Ïðèëîæåíèÿ"
     IDS_TAB_DLLS            "Áèáëèîòåêè"
     IDS_TAB_DRIVES          "Äèñêè"
-    IDS_CHOOSE_PATH         "Âûáåðèòå unix êàòàëîã äëÿ äèñêà."
+    IDS_CHOOSE_PATH         "Select the target unix folder, please."
     IDS_HIDE_ADVANCED       "Ñêðûòü äîïîëíèòåëüíûå"
     IDS_SHOW_ADVANCED       "Ïîêàçàòü äîïîëíèòåëüíûå"
     IDS_NOTHEME             "(áåç òåìû)"
     IDS_TAB_GRAPHICS        "Ãðàôèêà"
-    IDS_TAB_APPEARANCE      "Âíåøíèé âèä"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Àóäèî"
     IDS_TAB_ABOUT           "Î ïðîãðàììå"
     IDS_WINECFG_TITLE       "Íàñòðîéêà Wine"
     IDS_THEMEFILE           "Ôàéëû òåì"
     IDS_THEMEFILE_SELECT    "Âûáåðèòå ôàéë ñ òåìîé"
+    IDS_SHELL_FOLDER        "Shell Folder"
+    IDS_LINKS_TO            "Links to"
 END
diff --git a/programs/winecfg/Tr.rc b/programs/winecfg/Tr.rc
index 56ede39..d83ec94 100644
--- a/programs/winecfg/Tr.rc
+++ b/programs/winecfg/Tr.rc
@@ -168,17 +168,24 @@
     CONTROL         "Sürücü Emülasyonu",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Tema:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Tema kur...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Renk:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Boyut:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Tema:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Tema kur...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Renk:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Boyut:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folder ",IDC_STATIC,8,114,244,100
+    CONTROL         "Listview",IDC_LIST_SFPATHS,"SysListView32",LVS_REPORT | LVS_AUTOARRANGE | LVS_ALIGNLEFT |
+                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP, 15,126,230,64
+    CONTROL         "Link to:",IDC_LINK_SFPATH,"Button",BS_AUTOCHECKBOX|WS_TABSTOP|WS_DISABLED,15,195,50,13
+    EDITTEXT         IDC_EDIT_SFPATH,65,195,145,13,ES_AUTOHSCROLL|WS_TABSTOP|WS_DISABLED
+    PUSHBUTTON      "Browse",IDC_BROWSE_SFPATH,215,195,30,13,WS_DISABLED
 END
 
 STRINGTABLE DISCARDABLE
@@ -192,11 +199,13 @@
     IDS_SHOW_ADVANCED       "Geliþmiþ Ayarlar"
     IDS_NOTHEME             "(Tema Yok)"
     IDS_TAB_GRAPHICS        "Grafik"
-    IDS_TAB_APPEARANCE      "Görünüm"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Ses"
     IDS_TAB_ABOUT           "Hakkýnda"
     IDS_WINECFG_TITLE       "Wine yapýlandýrmasý"
     IDS_THEMEFILE           "Tema dosyalarý"
     IDS_THEMEFILE_SELECT    "Tema dosyasý seçin"
     IDS_AUDIO_MISSING       "Sistem kaydýnda belirlenmiþ bir ses sürücüsü yok.\n\nÖnerilen bir sürücü sizin için seçildi.\nBu sürücüyü kullanabilir veya varsa baþka bir sürücüyü seçebilirsiniz.\n\nSeçimin etkili olabilmesi için Uygula'yý týklamalýsýnýz."
+    IDS_SHELL_FOLDER        "Shell Folder"
+    IDS_LINKS_TO            "Links to"
 END
diff --git a/programs/winecfg/driveui.c b/programs/winecfg/driveui.c
index 5f407b5..ea80889 100644
--- a/programs/winecfg/driveui.c
+++ b/programs/winecfg/driveui.c
@@ -21,6 +21,8 @@
  *
  */
 
+#include <stdio.h>
+
 #define WIN32_LEAN_AND_MEAN
 #define COBJMACROS
 
@@ -590,7 +592,7 @@
     EndPaint(dialog, &ps);
 }
 
-static void browse_for_folder(HWND dialog)
+BOOL browse_for_unix_folder(HWND dialog, char *pszPath)
 {
     static WCHAR wszUnixRootDisplayName[] = 
         { ':',':','{','C','C','7','0','2','E','B','2','-','7','D','C','5','-','1','1','D','9','-',
@@ -613,13 +615,13 @@
     LoadString(GetModuleHandle(NULL), IDS_CHOOSE_PATH, pszChoosePath, 256);
     
     hr = SHGetDesktopFolder(&pDesktop);
-    if (!SUCCEEDED(hr)) return;
+    if (!SUCCEEDED(hr)) return FALSE;
 
     hr = IShellFolder_ParseDisplayName(pDesktop, NULL, NULL, wszUnixRootDisplayName, NULL, 
                                        &pidlUnixRoot, NULL);
     if (!SUCCEEDED(hr)) {
         IShellFolder_Release(pDesktop);
-        return;
+        return FALSE;
     }
 
     bi.pidlRoot = pidlUnixRoot;
@@ -636,17 +638,19 @@
         IShellFolder_Release(pDesktop);
         if (!SUCCEEDED(hr)) {
             SHFree(pidlSelectedPath);
-            return;
+            return FALSE;
         }
 
         hr = StrRetToStr(&strSelectedPath, pidlSelectedPath, &pszSelectedPath);
         SHFree(pidlSelectedPath);
-        if (!SUCCEEDED(hr)) return;
+        if (!SUCCEEDED(hr)) return FALSE;
 
-        set_text(dialog, IDC_EDIT_PATH, pszSelectedPath);
+        lstrcpy(pszPath, pszSelectedPath);
         
         CoTaskMemFree(pszSelectedPath);
+        return TRUE;
     }
+    return FALSE;
 }
 
 static void init_listview_columns(HWND dialog)
@@ -760,8 +764,12 @@
                     break;
 
                 case IDC_BUTTON_BROWSE_PATH:
-                    browse_for_folder(dialog);
+                {
+                    char szTargetPath[FILENAME_MAX];
+                    if (browse_for_unix_folder(dialog, szTargetPath)) 
+                        set_text(dialog, IDC_EDIT_PATH, szTargetPath);
                     break;
+                }
 
                 case IDC_RADIO_ASSIGN:
                 {
diff --git a/programs/winecfg/main.c b/programs/winecfg/main.c
index b77d02b..14168e6 100644
--- a/programs/winecfg/main.c
+++ b/programs/winecfg/main.c
@@ -146,10 +146,10 @@
     psp[pg].dwSize = sizeof (PROPSHEETPAGEW);
     psp[pg].dwFlags = PSP_USETITLE;
     psp[pg].hInstance = hInstance;
-    psp[pg].u.pszTemplate = MAKEINTRESOURCEW (IDD_APPEARANCE);
+    psp[pg].u.pszTemplate = MAKEINTRESOURCEW (IDD_DESKTOP_INTEGRATION);
     psp[pg].u2.pszIcon = NULL;
     psp[pg].pfnDlgProc = ThemeDlgProc;
-    psp[pg].pszTitle =  load_string (IDS_TAB_APPEARANCE);
+    psp[pg].pszTitle =  load_string (IDS_TAB_DESKTOP_INTEGRATION);
     psp[pg].lParam = 0;
     pg++;
 
diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h
index 4fac41f..effe459 100644
--- a/programs/winecfg/resource.h
+++ b/programs/winecfg/resource.h
@@ -33,12 +33,14 @@
 #define IDS_HIDE_ADVANCED               7
 #define IDS_NOTHEME                     8
 #define IDS_TAB_GRAPHICS                9
-#define IDS_TAB_APPEARANCE              10
+#define IDS_TAB_DESKTOP_INTEGRATION     10
 #define IDS_TAB_AUDIO                   11
 #define IDS_TAB_ABOUT                   12
 #define IDS_WINECFG_TITLE               13
 #define IDS_THEMEFILE                   14
 #define IDS_THEMEFILE_SELECT            15
+#define IDS_SHELL_FOLDER                16
+#define IDS_LINKS_TO                    17
 #define IDD_MAINDLG                     101
 #define IDB_WINE                        104
 #define IDD_ABOUTCFG                    107
@@ -48,7 +50,7 @@
 #define IDD_DLLCFG                      111
 #define IDD_DRIVECFG                    112
 #define IDD_DRIVE_EDIT                  114
-#define IDD_APPEARANCE                  115
+#define IDD_DESKTOP_INTEGRATION         115
 #define IDB_WINE_LOGO                   200
 #define IDC_TABABOUT                    1001
 #define IDC_APPLYBTN                    1002
@@ -149,10 +151,14 @@
 #define IDB_DEVICE                      1307
 #define IDS_AUDIO_MISSING               1308
 
-/* appearance tab */
+/* desktop integration tab */
 #define IDC_THEME_COLORCOMBO            1401
 #define IDC_THEME_COLORTEXT             1402
 #define IDC_THEME_SIZECOMBO             1403
 #define IDC_THEME_SIZETEXT              1404
 #define IDC_THEME_THEMECOMBO            1405
 #define IDC_THEME_INSTALL               1406
+#define IDC_LIST_SFPATHS                1407
+#define IDC_LINK_SFPATH                 1408
+#define IDC_EDIT_SFPATH                 1409
+#define IDC_BROWSE_SFPATH               1410
diff --git a/programs/winecfg/theme.c b/programs/winecfg/theme.c
index 3cb0e39..e3d53b2 100644
--- a/programs/winecfg/theme.c
+++ b/programs/winecfg/theme.c
@@ -1,7 +1,10 @@
 /*
- * Theme configuration code
+ * Desktop Integration
+ * - Theme configuration code
+ * - User Shell Folder mapping
  *
  * Copyright (c) 2005 by Frank Richter
+ * Copyright (c) 2006 by Michael Jung
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -22,6 +25,10 @@
 #include <stdarg.h>
 #include <stdlib.h>
 #include <stdio.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#define COBJMACROS
 
 #include <windows.h>
 #include <uxtheme.h>
@@ -572,11 +579,250 @@
   else WINE_TRACE("user cancelled\n");
 }
 
+/* Information about symbolic link targets of certain User Shell Folders. */
+struct ShellFolderInfo {
+    int nFolder;
+    char szLinkTarget[FILENAME_MAX];
+};
+
+static struct ShellFolderInfo asfiInfo[] = {
+    { CSIDL_DESKTOP,  "" },
+    { CSIDL_PERSONAL, "" },
+    { CSIDL_MYPICTURES, "" },
+    { CSIDL_MYMUSIC, "" },
+    { CSIDL_MYVIDEO, "" }
+};
+
+static struct ShellFolderInfo *psfiSelected = NULL;
+
+#define NUM_ELEMS(x) (sizeof(x)/sizeof(*(x)))
+
+static void init_shell_folder_listview_headers(HWND dialog) {
+    LVCOLUMN listColumn;
+    RECT viewRect;
+    char szShellFolder[64] = "Shell Folder";
+    char szLinksTo[64] = "Links to";
+    int width;
+
+    LoadString(GetModuleHandle(NULL), IDS_SHELL_FOLDER, szShellFolder, sizeof(szShellFolder));
+    LoadString(GetModuleHandle(NULL), IDS_LINKS_TO, szLinksTo, sizeof(szLinksTo));
+    
+    GetClientRect(GetDlgItem(dialog, IDC_LIST_SFPATHS), &viewRect);
+    width = (viewRect.right - viewRect.left) / 4;
+
+    listColumn.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM;
+    listColumn.pszText = szShellFolder;
+    listColumn.cchTextMax = lstrlen(listColumn.pszText);
+    listColumn.cx = width;
+
+    SendDlgItemMessage(dialog, IDC_LIST_SFPATHS, LVM_INSERTCOLUMN, 0, (LPARAM) &listColumn);
+
+    listColumn.pszText = szLinksTo;
+    listColumn.cchTextMax = lstrlen(listColumn.pszText);
+    listColumn.cx = viewRect.right - viewRect.left - width - 1;
+
+    SendDlgItemMessage(dialog, IDC_LIST_SFPATHS, LVM_INSERTCOLUMN, 1, (LPARAM) &listColumn);
+}
+
+/* Reads the currently set shell folder symbol link targets into asfiInfo. */
+static void read_shell_folder_link_targets() {
+    WCHAR wszPath[MAX_PATH];
+    HRESULT hr;
+    int i;
+   
+    for (i=0; i<NUM_ELEMS(asfiInfo); i++) {
+        asfiInfo[i].szLinkTarget[0] = '\0';
+        hr = SHGetFolderPathW(NULL, asfiInfo[i].nFolder|CSIDL_FLAG_DONT_VERIFY, NULL, 
+                              SHGFP_TYPE_CURRENT, wszPath);
+        if (SUCCEEDED(hr)) {
+            char *pszUnixPath = wine_get_unix_file_name(wszPath);
+            if (pszUnixPath) {
+                struct stat statPath;
+                if (!lstat(pszUnixPath, &statPath) && S_ISLNK(statPath.st_mode)) {
+                    int cLen = readlink(pszUnixPath, asfiInfo[i].szLinkTarget, FILENAME_MAX-1);
+                    if (cLen >= 0) asfiInfo[i].szLinkTarget[cLen] = '\0';
+                }
+                HeapFree(GetProcessHeap(), 0, pszUnixPath);
+            }
+        } 
+    }    
+}
+
+static void update_shell_folder_listview(HWND dialog) {
+    int i;
+    LVITEM item;
+    LONG lSelected = SendDlgItemMessage(dialog, IDC_LIST_SFPATHS, LVM_GETNEXTITEM, (WPARAM)-1, 
+                                        MAKELPARAM(LVNI_SELECTED,0));
+    
+    SendDlgItemMessage(dialog, IDC_LIST_SFPATHS, LVM_DELETEALLITEMS, 0, 0);
+
+    for (i=0; i<NUM_ELEMS(asfiInfo); i++) {
+        char buffer[MAX_PATH];
+        HRESULT hr;
+        LPITEMIDLIST pidlCurrent;
+
+        /* Some acrobatic to get the localized name of the shell folder */
+        hr = SHGetFolderLocation(dialog, asfiInfo[i].nFolder, NULL, 0, &pidlCurrent);
+        if (SUCCEEDED(hr)) { 
+            LPSHELLFOLDER psfParent;
+            LPCITEMIDLIST pidlLast;
+            hr = SHBindToParent(pidlCurrent, &IID_IShellFolder, (LPVOID*)&psfParent, &pidlLast);
+            if (SUCCEEDED(hr)) {
+                STRRET strRet;
+                hr = IShellFolder_GetDisplayNameOf(psfParent, pidlLast, SHGDN_FORADDRESSBAR, &strRet);
+                if (SUCCEEDED(hr)) {
+                    hr = StrRetToBufA(&strRet, pidlLast, buffer, 256);
+                }
+                IShellFolder_Release(psfParent);
+            }
+            ILFree(pidlCurrent);
+        }
+
+        /* If there's a dangling symlink for the current shell folder, SHGetFolderLocation
+         * will fail above. We fall back to the (non-verified) path of the shell folder. */
+        if (FAILED(hr)) {
+            hr = SHGetFolderPath(dialog, asfiInfo[i].nFolder|CSIDL_FLAG_DONT_VERIFY, NULL, 
+                                 SHGFP_TYPE_CURRENT, buffer);
+        }
+    
+        item.mask = LVIF_TEXT | LVIF_PARAM;
+        item.iItem = i;
+        item.iSubItem = 0;
+        item.pszText = buffer;
+        item.lParam = (LPARAM)&asfiInfo[i];
+        SendDlgItemMessage(dialog, IDC_LIST_SFPATHS, LVM_INSERTITEM, 0, (LPARAM)&item);
+
+        item.mask = LVIF_TEXT;
+        item.iItem = i;
+        item.iSubItem = 1;
+        item.pszText = asfiInfo[i].szLinkTarget;
+        SendDlgItemMessage(dialog, IDC_LIST_SFPATHS, LVM_SETITEM, 0, (LPARAM)&item);
+    }
+
+    /* Ensure that the previously selected item is selected again. */
+    if (lSelected >= 0) {
+        item.mask = LVIF_STATE;
+        item.state = LVIS_SELECTED;
+        item.stateMask = LVIS_SELECTED;
+        SendDlgItemMessage(dialog, IDC_LIST_SFPATHS, LVM_SETITEMSTATE, (WPARAM)lSelected, 
+                           (LPARAM)&item);
+    }
+}
+
+static void on_shell_folder_selection_changed(HWND hDlg, LPNMLISTVIEW lpnm) {
+    if (lpnm->uNewState & LVIS_SELECTED) {
+        psfiSelected = (struct ShellFolderInfo *)lpnm->lParam;
+        EnableWindow(GetDlgItem(hDlg, IDC_LINK_SFPATH), 1);
+        if (strlen(psfiSelected->szLinkTarget)) {
+            CheckDlgButton(hDlg, IDC_LINK_SFPATH, BST_CHECKED);
+            EnableWindow(GetDlgItem(hDlg, IDC_EDIT_SFPATH), 1);
+            EnableWindow(GetDlgItem(hDlg, IDC_BROWSE_SFPATH), 1);
+            SetWindowText(GetDlgItem(hDlg, IDC_EDIT_SFPATH), psfiSelected->szLinkTarget);
+        } else {
+            CheckDlgButton(hDlg, IDC_LINK_SFPATH, BST_UNCHECKED);
+            EnableWindow(GetDlgItem(hDlg, IDC_EDIT_SFPATH), 0);
+            EnableWindow(GetDlgItem(hDlg, IDC_BROWSE_SFPATH), 0);
+            SetWindowText(GetDlgItem(hDlg, IDC_EDIT_SFPATH), "");
+        }
+    } else {
+        psfiSelected = NULL;
+        CheckDlgButton(hDlg, IDC_LINK_SFPATH, BST_UNCHECKED);
+        SetWindowText(GetDlgItem(hDlg, IDC_EDIT_SFPATH), "");
+        EnableWindow(GetDlgItem(hDlg, IDC_LINK_SFPATH), 0);
+        EnableWindow(GetDlgItem(hDlg, IDC_EDIT_SFPATH), 0);
+        EnableWindow(GetDlgItem(hDlg, IDC_BROWSE_SFPATH), 0);
+    }
+}
+
+/* Keep the contents of the edit control, the listview control and the symlink 
+ * information in sync. */
+static void on_shell_folder_edit_changed(HWND hDlg) {
+    LVITEM item;
+    char *text = get_text(hDlg, IDC_EDIT_SFPATH);
+    LONG iSel = SendDlgItemMessage(hDlg, IDC_LIST_SFPATHS, LVM_GETNEXTITEM, -1,
+                                   MAKELPARAM(LVNI_SELECTED,0));
+    
+    if (!text || !psfiSelected || iSel < 0) {
+        HeapFree(GetProcessHeap(), 0, text);
+        return;
+    }
+
+    strncpy(psfiSelected->szLinkTarget, text, FILENAME_MAX);
+    HeapFree(GetProcessHeap(), 0, text);
+
+    item.mask = LVIF_TEXT;
+    item.iItem = iSel;
+    item.iSubItem = 1;
+    item.pszText = psfiSelected->szLinkTarget;
+    SendDlgItemMessage(hDlg, IDC_LIST_SFPATHS, LVM_SETITEM, 0, (LPARAM)&item);
+
+    SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
+}
+
+static void apply_shell_folder_changes() {
+    WCHAR wszPath[MAX_PATH];
+    char szBackupPath[FILENAME_MAX], szUnixPath[FILENAME_MAX], *pszUnixPath = NULL;
+    int i, cUnixPathLen;
+    struct stat statPath;
+    HRESULT hr;
+
+    for (i=0; i<NUM_ELEMS(asfiInfo); i++) {
+        /* Ignore non existent link targets */
+        if (asfiInfo[i].szLinkTarget[0] && stat(asfiInfo[i].szLinkTarget, &statPath))
+            continue;
+        
+        hr = SHGetFolderPathW(NULL, asfiInfo[i].nFolder|CSIDL_FLAG_CREATE, NULL, 
+                              SHGFP_TYPE_CURRENT, wszPath);
+        if (FAILED(hr)) continue;
+
+        /* Retrieve the corresponding unix path. */
+        pszUnixPath = wine_get_unix_file_name(wszPath);
+        if (!pszUnixPath) continue;
+        lstrcpyA(szUnixPath, pszUnixPath);
+        HeapFree(GetProcessHeap(), 0, pszUnixPath);
+            
+        /* Derive name for folder backup. */
+        cUnixPathLen = lstrlenA(szUnixPath);    
+        lstrcpyA(szBackupPath, szUnixPath);
+        lstrcatA(szBackupPath, ".winecfg");
+        
+        if (lstat(szUnixPath, &statPath)) continue;
+    
+        /* Move old folder/link out of the way. */
+        if (S_ISLNK(statPath.st_mode)) {
+            if (unlink(szUnixPath)) continue; /* Unable to remove link. */
+        } else { 
+            if (!*asfiInfo[i].szLinkTarget) {
+                continue; /* We are done. Old was real folder, as new shall be. */
+            } else { 
+                if (rename(szUnixPath, szBackupPath)) { /* Move folder out of the way. */
+                    continue; /* Unable to move old folder. */
+                }
+            }
+        }
+    
+        /* Create new link/folder. */
+        if (*asfiInfo[i].szLinkTarget) {
+            symlink(asfiInfo[i].szLinkTarget, szUnixPath);
+        } else {
+            /* If there's a backup folder, restore it. Else create new folder. */
+            if (!lstat(szBackupPath, &statPath) && S_ISDIR(statPath.st_mode)) {
+                rename(szBackupPath, szUnixPath);
+            } else {
+                mkdir(szUnixPath, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
+            }
+        }
+    }
+}
+
 INT_PTR CALLBACK
 ThemeDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
     switch (uMsg) {
         case WM_INITDIALOG:
+            read_shell_folder_link_targets();
+            init_shell_folder_listview_headers(hDlg);
+            update_shell_folder_listview(hDlg);
             break;
         
         case WM_DESTROY:
@@ -600,23 +846,44 @@
                     }
                     break;
                 }
-                    
-                default:
+                case EN_CHANGE: {
+                    if (LOWORD(wParam) == IDC_EDIT_SFPATH) 
+                        on_shell_folder_edit_changed(hDlg);
                     break;
-            }
-            switch (LOWORD(wParam))
-            {
-                case IDC_THEME_INSTALL:
-                    if (HIWORD(wParam) != BN_CLICKED) break;
-                    on_theme_install (hDlg);
-                    break;
-                    
-                default:
+                }
+                case BN_CLICKED:
+                    switch (LOWORD(wParam))
+                    {
+                        case IDC_THEME_INSTALL:
+                            on_theme_install (hDlg);
+                            break;
+
+                        case IDC_BROWSE_SFPATH:
+                            if (browse_for_unix_folder(hDlg, psfiSelected->szLinkTarget)) {
+                                update_shell_folder_listview(hDlg);
+                                SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
+                            }
+                            break;
+
+                        case IDC_LINK_SFPATH:
+                            if (IsDlgButtonChecked(hDlg, IDC_LINK_SFPATH)) {
+                                if (browse_for_unix_folder(hDlg, psfiSelected->szLinkTarget)) {
+                                    update_shell_folder_listview(hDlg);
+                                    SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
+                                } else {
+                                    CheckDlgButton(hDlg, IDC_LINK_SFPATH, BST_UNCHECKED);
+                                }
+                            } else {
+                                psfiSelected->szLinkTarget[0] = '\0';
+                                update_shell_folder_listview(hDlg);
+                                SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
+                            }
+                            break;    
+                    }
                     break;
             }
             break;
         
-        
         case WM_NOTIFY:
             switch (((LPNMHDR)lParam)->code) {
                 case PSN_KILLACTIVE: {
@@ -626,9 +893,17 @@
                 case PSN_APPLY: {
                     apply();
                     apply_theme(hDlg);
+                    apply_shell_folder_changes();
+                    read_shell_folder_link_targets();
+                    update_shell_folder_listview(hDlg);
                     SetWindowLongPtr(hDlg, DWLP_MSGRESULT, PSNRET_NOERROR);
                     break;
                 }
+                case LVN_ITEMCHANGED: { 
+                    if (wParam == IDC_LIST_SFPATHS)  
+                        on_shell_folder_selection_changed(hDlg, (LPNMLISTVIEW)lParam);
+                    break;
+                }
                 case PSN_SETACTIVE: {
                     init_dialog (hDlg);
                     break;
diff --git a/programs/winecfg/winecfg.h b/programs/winecfg/winecfg.h
index 0e78d2f..4966dcb 100644
--- a/programs/winecfg/winecfg.h
+++ b/programs/winecfg/winecfg.h
@@ -101,6 +101,7 @@
 BOOL add_drive(const char letter, const char *targetpath, const char *label, const char *serial, unsigned int type);
 void delete_drive(struct drive *pDrive);
 void apply_drive_changes(void);
+BOOL browse_for_unix_folder(HWND dialog, char *pszPath);
 extern struct drive drives[26]; /* one for each drive letter */
 
 BOOL gui_mode;