Index: configmgr/source/localbe/localfilehelper.cxx
===================================================================
RCS file: /cvs/util/configmgr/source/localbe/localfilehelper.cxx,v
retrieving revision 1.3
diff -u -p -u -r1.3 localfilehelper.cxx
--- configmgr/source/localbe/localfilehelper.cxx	16 Feb 2005 16:46:51 -0000	1.3
+++ configmgr/source/localbe/localfilehelper.cxx	27 Oct 2005 11:21:18 -0000
@@ -126,6 +128,10 @@ namespace configmgr 
         if (_sURL.getLength() == 0)
             return false;
 
+		// This method has no right to be so under-performing to
+		// achieve so, so little of any usefulness.
+		return true;
+
         DirectoryItem aDirItem;
         
         DirectoryItem::RC rc = DirectoryItem::get(_sURL, aDirItem);
Index: configmgr/source/localbe/localmultistratum.cxx
===================================================================
RCS file: /cvs/util/configmgr/source/localbe/localmultistratum.cxx,v
retrieving revision 1.5
diff -u -p -u -r1.5 localmultistratum.cxx
--- configmgr/source/localbe/localmultistratum.cxx	8 Sep 2005 04:04:46 -0000	1.5
+++ configmgr/source/localbe/localmultistratum.cxx	27 Oct 2005 11:21:18 -0000
@@ -107,7 +107,7 @@ uno::Sequence< rtl::OUString > SAL_CALL 
     rtl::OUString const aComponentUrl = aLayerUrl + componentToPath(aComponent);
     
     using namespace osl;
-    const sal_uInt32 k_STATUS_FIELDS =  FileStatusMask_Type | FileStatusMask_FileName; 
+    const sal_uInt32 k_STATUS_FIELDS = FileStatusMask_FileName; 
     Directory aComponentDirectory(aComponentUrl);
     DirectoryItem aItem;
     std::vector< rtl::OUString > aResult;
@@ -132,13 +132,12 @@ uno::Sequence< rtl::OUString > SAL_CALL 
                 OSL_TRACE("Reading Component Directory - Error (%u) getting status of directory item.\n", unsigned(errcode));
                 break;
             }
-
-            OSL_ENSURE( aItemDescriptor.isValid(FileStatusMask_Type), "Could not get type of directory item");
-            if (aItemDescriptor.getFileType() != FileStatus::Regular)
-                continue;
                     
             OSL_ENSURE( aItemDescriptor.isValid(FileStatusMask_FileName), "Could not get Name of component found");
             OUString const aFileName = aItemDescriptor.getFileName();
+
+			// It is reasonable to assume a .xcu file is not a directory & =>
+			// not stat each directory entry at considerable cost.
             if (!aFileName.endsWithIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM(kLocalDataSuffix)))
                 continue;
 
Index: configmgr/source/misc/filehelper.cxx
===================================================================
RCS file: /cvs/util/configmgr/source/misc/filehelper.cxx,v
retrieving revision 1.16
diff -u -p -u -r1.16 filehelper.cxx
--- configmgr/source/misc/filehelper.cxx	8 Sep 2005 04:09:44 -0000	1.16
+++ configmgr/source/misc/filehelper.cxx	27 Oct 2005 11:21:18 -0000
@@ -143,9 +143,22 @@ namespace configmgr 
 		static const TimeValue k_NullTime = {0,0};		
         sal_uInt64 aSize = 0;
         rModifyTime = k_NullTime;
+		rtl::OUString aURL;
 
-		DirectoryItem aItem;		
-		if (osl::FileBase::E_None == DirectoryItem::get(_sURL, aItem))
+		DirectoryItem aItem;
+
+#ifndef STAT_LOTS_OF_UNUSED_FILES
+		// Statting every file takes way to long - we can use the directory
+		// time-stamp & size instead, if we need to provoke an update
+		// a simple cat > foo; rm foo will do that.
+		// The dir size is (hopefully) non-0 and a good enough proxy value.
+
+		aURL = FileHelper::getParentDir(_sURL);
+#else
+		aURL = _sURL;
+#endif
+
+		if (osl::FileBase::E_None == DirectoryItem::get(aURL, aItem))
 		{
 			FileStatus aStatus(osl_FileStatus_Mask_ModifyTime|osl_FileStatus_Mask_Type|osl_FileStatus_Mask_FileSize);			
 			if (osl::FileBase::E_None == aItem.getFileStatus(aStatus))
