diff -ru typo3_src-4.2.3.orig/t3lib/class.t3lib_tcemain.php typo3_src-4.2.3/t3lib/class.t3lib_tcemain.php --- typo3_src-4.2.3.orig/t3lib/class.t3lib_tcemain.php 2008-11-11 04:29:32.000000000 +0100 +++ typo3_src-4.2.3/t3lib/class.t3lib_tcemain.php 2009-01-16 16:48:25.000000000 +0100 @@ -3127,9 +3127,14 @@ // Process references and files, currently that means only the files, prepending absolute paths: $dataValue = $this->copyRecord_procFilesRefs($dsConf, $uid, $dataValue); - // If references are set for this field, set flag so they can be corrected later (in ->remapListedDBRecords()) if ($this->isReferenceField($dsConf) && strlen($dataValue)) { - $this->registerDBList[$table][$uid][$field] = 'FlexForm_reference'; + $allowedTables = $dsConf['type']=='group' ? $dsConf['allowed'] : $dsConf['foreign_table'].','.$dsConf['neg_foreign_table']; // Allowed tables for references. + $prependName = $dsConf['type']=='group' ? $dsConf['prepend_tname'] : ''; // Table name to prepend the UID + $dontRemapTables = t3lib_div::trimExplode(',',$dsConf['dontRemapTablesOnCopy'],1); // Which tables that should possibly not be remapped + $dbAnalysis = t3lib_div::makeInstance('t3lib_loadDBGroup'); + $dbAnalysis->registerNonTableValues = ($dsConf['type']=='select' && $dsConf['allowNonIdValues']) ? 1 : 0; + $dbAnalysis->start($dataValue, $allowedTables, $dsConf['MM'], $uid, $table, $dsConf); + $dataValue=implode(',',$dbAnalysis->getValueArray($prependName)); } // Return