diff -Naur xbmc-dharma-35003/xbmc/GUISettings.cpp xbmc-dharma-35003.patch/xbmc/GUISettings.cpp
--- xbmc-dharma-35003/xbmc/GUISettings.cpp	2010-10-25 23:37:10.165043528 +0200
+++ xbmc-dharma-35003.patch/xbmc/GUISettings.cpp	2010-10-25 23:37:27.888251923 +0200
@@ -528,6 +528,7 @@
   AddBool(NULL, "videolibrary.seasonthumbs", 20382, true);
   AddBool(vdl, "videolibrary.actorthumbs", 20402, true);
   AddInt(vdl, "videolibrary.flattentvshows", 20412, 1, 0, 1, 2, SPIN_CONTROL_TEXT);
+  AddBool(NULL, "videolibrary.flattenmoviesets", 22002, false);
   AddBool(vdl, "videolibrary.updateonstartup", 22000, false);
   AddBool(vdl, "videolibrary.backgroundupdate", 22001, false);
   AddSeparator(vdl, "videolibrary.sep3");
diff -Naur xbmc-dharma-35003/xbmc/VideoDatabase.cpp xbmc-dharma-35003.patch/xbmc/VideoDatabase.cpp
--- xbmc-dharma-35003/xbmc/VideoDatabase.cpp	2010-10-25 15:36:19.000000000 +0200
+++ xbmc-dharma-35003.patch/xbmc/VideoDatabase.cpp	2010-10-25 23:37:27.887251911 +0200
@@ -4394,7 +4394,7 @@
     if (NULL == m_pDS.get()) return false;
 
     CStdString strSQL = "select * from movieview ";
-    if (fetchSets)
+    if (fetchSets && !g_guiSettings.GetBool("videolibrary.flattenmoviesets"))
     {
       // not getting a set, so grab all sets that match this where clause first
       CStdString setsWhere;
diff -Naur xbmc-dharma-35003/xbmc/VideoDatabase.cpp.orig xbmc-dharma-35003.patch/xbmc/VideoDatabase.cpp.orig
