Index: trunk/src/sh_fInotify.c
===================================================================
--- trunk/src/sh_fInotify.c	(revision 400)
+++ trunk/src/sh_fInotify.c	(revision 402)
@@ -363,13 +363,24 @@
 	  if ((errnum == ENOENT) || (errnum == EEXIST))
 	    {
-	      char * epath = sh_util_safe_name (filename);
-	      SH_MUTEX_LOCK(mutex_thread_nolog);
-	      sh_error_handle( (class == SH_LEVEL_ALLIGNORE) ? 
-			       ShDFLevel[class] : 
-			       ShDFLevel[SH_ERR_T_FILE], 
-			       FIL__, __LINE__, errnum, MSG_E_SUBGPATH, 
-			       errbuf, _("sh_fInotify_init_internal"), epath);
-	      SH_MUTEX_UNLOCK(mutex_thread_nolog);
-	      SH_FREE(epath);
+	      /* (1) Did it exist at init ? 
+	       */
+	      if (sh_hash_have_it (filename) >= 0)
+		{
+		  /* (2) Do we want to report on it ?
+		   */
+		  if (S_FALSE == sh_ignore_chk_del(filename))
+		    {
+		      char * epath = sh_util_safe_name (filename);
+
+		      SH_MUTEX_LOCK(mutex_thread_nolog);
+		      sh_error_handle( (class == SH_LEVEL_ALLIGNORE) ? 
+				       ShDFLevel[class] : 
+				       ShDFLevel[SH_ERR_T_FILE], 
+				       FIL__, __LINE__, errnum, MSG_E_SUBGPATH, 
+				       errbuf, _("sh_fInotify_init_internal"), epath);
+		      SH_MUTEX_UNLOCK(mutex_thread_nolog);
+		      SH_FREE(epath);
+		    }
+		}
 	    }
 	  else
@@ -457,5 +468,5 @@
 
 	  SH_MUTEX_LOCK(mutex_thread_nolog);
-	  sh_error_handle((-1), FIL__, __LINE__, event->wd, MSG_E_SUBGEN, 
+	  sh_error_handle(SH_ERR_ALL, FIL__, __LINE__, event->wd, MSG_E_SUBGEN, 
 			  _("Watch removed: file path unknown"), 
 			  _("sh_fInotify_process"));
Index: trunk/src/sh_files.c
===================================================================
--- trunk/src/sh_files.c	(revision 400)
+++ trunk/src/sh_files.c	(revision 402)
@@ -451,4 +451,5 @@
 		  CLEAR_SH_FFLAG_REPORTED(ptr->is_reported);
 		}
+
 	      /* Catchall
 	       */
Index: trunk/src/sh_hash.c
===================================================================
--- trunk/src/sh_hash.c	(revision 400)
+++ trunk/src/sh_hash.c	(revision 402)
@@ -1239,9 +1239,11 @@
   sh_do_decode(ft.checksum, sl_strlen(ft.checksum));
   
-  
+  /* TXT entries are c_mode[0] != 'l' and do not get decoded 
+   */
   if (ft.c_mode[0] == 'l' && linkpath != notalink)
     {  
       sh_do_decode(linkpath, sl_strlen(linkpath));
     }
+
   if ((ft.mark & REC_FLAGS_ATTR) != 0)
     {  
@@ -1772,4 +1774,6 @@
   }
 
+  /* NOTE: TXT entries are c_mode[0] != 'l' and do not get decoded 
+   */
   if (buf != NULL /* && buf->c_mode[0] == 'l' */ && buf->link_path != NULL) 
     {  
Index: trunk/src/sh_unix.c
===================================================================
--- trunk/src/sh_unix.c	(revision 400)
+++ trunk/src/sh_unix.c	(revision 402)
@@ -4252,5 +4252,5 @@
       SH_FREE(linknamebuf);
     }
-  else /* not a link */
+  else /* not a link, theFile->c_mode[0] != 'l' */
     {
       if (content)
