diff -ur typo3_src-4.1.2.orig/typo3/class.db_list_extra.inc typo3_src-4.1.2/typo3/class.db_list_extra.inc
--- typo3_src-4.1.2.orig/typo3/class.db_list_extra.inc	2007-08-23 18:02:51.000000000 +0200
+++ typo3_src-4.1.2/typo3/class.db_list_extra.inc	2007-08-26 18:14:07.000000000 +0200
@@ -336,6 +336,23 @@
 		if ($this->searchLevels)	{
 			$this->fieldArray[]='_PATH_';
 		}
+
+			// By default table records are collapsable in multi table mode. Only if they are explicitly turned off via TSconfig, they are not
+		$tmpArr = $GLOBALS['BE_USER']->getTSConfig('options.moduleListCollapsable');
+		$collapsable = (isset($tmpArr['value']) && $tmpArr['value']==0) ? 0 : 1;
+		unset($tmpArr);
+
+			// Get collapsed configuration
+		if ($collapsable == 1)	{
+			$config = is_array ($GLOBALS['BE_USER']->uc['moduleData']['db_list.php']) ? $GLOBALS['BE_USER']->uc['moduleData']['db_list.php'] : array();
+			$collapsedOverride = t3lib_div::_GP('collapsedOverride');
+			if (is_array ($collapsedOverride)) {
+				$config = array_merge ($config, $collapsedOverride);
+			}
+			$GLOBALS['BE_USER']->uc['moduleData']['db_list.php'] = $config;
+			$GLOBALS['BE_USER']->writeUC($GLOBALS['BE_USER']->uc);
+		}
+
 			// Cleaning up:
 		$this->fieldArray=array_unique(array_merge($this->fieldArray,t3lib_div::trimExplode(',',$rowlist,1)));
 		if ($this->noControlPanels)	{
@@ -421,6 +438,11 @@
 				$theData[$titleCol] = $this->linkWrapTable($table,'<span class="c-table">'.$GLOBALS['LANG']->sL($TCA[$table]['ctrl']['title'],1).'</span> ('.$this->totalItems.') <img'.t3lib_iconWorks::skinImg($this->backPath,'gfx/'.($this->table?'minus':'plus').'bullet_list.gif','width="18" height="12"').' hspace="10" class="absmiddle" title="'.$GLOBALS['LANG']->getLL(!$this->table?'expandView':'contractView',1).'" alt="" />');
 			}
 
+				// Render collapse button if in multi table mode and if collapsable is not off
+			if (!$this->table && $collapsable==1)	{ // Render only in Multi Table Mode
+				$theData[$titleCol].= '<a href="'.htmlspecialchars($this->listURL()).'&collapsedOverride['.$table.']='.($config[$table] ? '0' : '1').'" style="margin-right: 10px;"><img src="gfx/select'.($config[$table] ? 'all' : 'none').'.gif" "alt="" title="'.($config[$table] ? $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.expandTable',1) : $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.php:labels.collapseTable',1)).'" /></a>';
+			}
+
 				// CSH:
 			$theData[$titleCol].= t3lib_BEfunc::cshItem($table,'',$this->backPath,'',FALSE,'margin-bottom:0px; white-space: normal;');
 
@@ -430,7 +452,8 @@
 						<td class="c-headLineTable" style="width:95%;">'.$theData[$titleCol].'</td>
 					</tr>';
 
-				if ($GLOBALS['BE_USER']->uc["edit_showFieldHelp"])	{
+					// Render help content if enabled for this user and not collapsable or collapsable but not collapsed
+				if ( $GLOBALS['BE_USER']->uc["edit_showFieldHelp"] && ($collapsable==0 || ($collapsable==1 && !$config[$table])) )	{
 					$GLOBALS['LANG']->loadSingleTableDescription($table);
 					if (isset($GLOBALS['TCA_DESCR'][$table]['columns']['']))	{
 						$onClick = 'vHWin=window.open(\'view_help.php?tfID='.$table.'.\',\'viewFieldHelp\',\'height=400,width=600,status=0,menubar=0,scrollbars=1\');vHWin.focus();return false;';
@@ -445,7 +468,8 @@
 				$out.=$this->addelement(1,$theUpIcon,$theData,' class="c-headLineTable"','');
 			}
 
-			If (!$LOISmode)	{
+				// Render table rows only if in multi table view and not collapsed or if in single table view
+			if ( !$LOISmode && (!$config[$table] || $this->table) )	{
 					// Fixing a order table for sortby tables
 				$this->currentTable = array();
 				$currentIdList = array();
diff -ur typo3_src-4.1.2.orig/typo3/sysext/lang/locallang_core.xml typo3_src-4.1.2/typo3/sysext/lang/locallang_core.xml
--- typo3_src-4.1.2.orig/typo3/sysext/lang/locallang_core.xml	2007-08-23 18:02:53.000000000 +0200
+++ typo3_src-4.1.2/typo3/sysext/lang/locallang_core.xml	2007-08-26 17:46:35.000000000 +0200
@@ -15,6 +15,8 @@
 			<label index="labels.path">Path</label>
 			<label index="labels.table">Table</label>
 			<label index="labels.upOneLevel">Up one level</label>
+			<label index="labels.expandTable">Expand table</label>
+			<label index="labels.collapseTable">Collapse table</label>
 			<label index="labels.enterSearchString">Search String:</label>
 			<label index="labels.enterSearchLevels">This page|1 level down|2 levels down|3 levels down|4 levels down</label>
 			<label index="labels.noEditPermission">Sorry, you didn't have proper permissions to perform this change.</label>
