diff -Naur tmp/mutella-0.4.1/mutella/dir.cpp mutella-0.4.1/mutella/dir.cpp
--- tmp/mutella-0.4.1/mutella/dir.cpp	Thu Jun 13 10:15:19 2002
+++ mutella-0.4.1/mutella/dir.cpp	Mon Oct 28 00:48:16 2002
@@ -97,7 +97,7 @@
            (*(DirEntry**)l)->Name < (*(DirEntry**)r)->Name ? -1 : 0;
 }
 
-bool ScanDir( DirEntryVec& result, const CString &path, const CString &nameFilter, int typeFilter, int sortSpec )
+bool ScanDir( DirEntryVec& result, const CString &path, const CString &nameFilter, int typeFilter, bool dotFiles, int sortSpec )
 {
     DIR	     *dir;
     dirent   *file;
@@ -116,8 +116,11 @@
     while ( (file = readdir(dir)) )
     {
         DirEntry de;
+
         de.Name = file->d_name;
-        //
+	if ( ( ! dotFiles ) && ( de.Name.c_str()[0] == '.' ) ) {
+	    continue;
+	}
         if (de.Name == "." || de.Name == "..")
             continue;
         // time to unlock
diff -Naur tmp/mutella-0.4.1/mutella/dir.h mutella-0.4.1/mutella/dir.h
--- tmp/mutella-0.4.1/mutella/dir.h	Tue Apr 30 19:31:22 2002
+++ mutella-0.4.1/mutella/dir.h	Mon Oct 28 00:26:12 2002
@@ -85,7 +85,7 @@
 
 bool ScanDir( DirEntryVec& result,
               const CString &path,
-              const CString &nameFilter, int typeFilter = DirEntry::regular, int sortSpec = SORT_NONE);
+              const CString &nameFilter, int typeFilter = DirEntry::regular, bool dotFiles=true, int sortSpec = SORT_NONE );
 
 #endif //_DIR_H_INCLUDED_
 
diff -Naur tmp/mutella-0.4.1/mutella/gnushare.cpp mutella-0.4.1/mutella/gnushare.cpp
--- tmp/mutella-0.4.1/mutella/gnushare.cpp	Sat Jul  6 20:08:57 2002
+++ mutella-0.4.1/mutella/gnushare.cpp	Mon Oct 28 00:13:44 2002
@@ -291,7 +291,8 @@
 void MShareThread::RecurseLoad(CString FullPath, CString DirPath, bool doRecurse, DWORD &DirCount, long long &DirSize)
 {
     DirEntryVec files;
-    if (!ScanDir(files, FullPath, m_pShare->m_pDirector->GetPrefs()->m_szShareFilter, DirEntry::regular|DirEntry::dir))
+    if (!ScanDir(files, FullPath, m_pShare->m_pDirector->GetPrefs()->m_szShareFilter, DirEntry::regular|DirEntry::dir,
+			    m_pShare->m_pDirector->GetPrefs()->m_bDotFiles))
     {
     	// TODO: messageID
     	POST_ERROR(ES_GOODTOKNOW, CString("RecurseLoad: error scanning the dir ") + FullPath);
diff -Naur tmp/mutella-0.4.1/mutella/preferences.cpp mutella-0.4.1/mutella/preferences.cpp
--- tmp/mutella-0.4.1/mutella/preferences.cpp	Wed Jun 26 20:22:35 2002
+++ mutella-0.4.1/mutella/preferences.cpp	Mon Oct 28 00:05:36 2002
@@ -108,6 +108,7 @@
 	// Share
 	m_pContainer->AddSection("ShareOptions");
 	m_pContainer->AddProperty("ShareFilter",   m_szShareFilter,   MAX_PATH, "");
+	m_pContainer->AddProperty("ShareDotFiles", &m_bDotFiles, false);
 	m_pContainer->AddProperty("ReplyFilePath", &m_bReplyFilePath, true); // include relative path to the share names
 	m_pContainer->AddProperty("MaxReplies",    &m_nMaxReplies,    64);
 	m_pContainer->AddProperty("ReplyIfAvail",  &m_bSendOnlyAvail, true); // makes sense if sharing only big files
diff -Naur tmp/mutella-0.4.1/mutella/preferences.h mutella-0.4.1/mutella/preferences.h
--- tmp/mutella-0.4.1/mutella/preferences.h	Wed Jun 26 20:22:35 2002
+++ mutella-0.4.1/mutella/preferences.h	Mon Oct 28 00:06:23 2002
@@ -98,6 +98,7 @@
 	// Share
 	char m_szSharePath[MAX_PATH];
 	char m_szShareFilter[MAX_PATH];
+	bool m_bDotFiles;
 	bool m_bReplyFilePath;
 	int  m_nMaxReplies;
 	bool m_bSendOnlyAvail;
