#
 sub VERSION {(q$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'}
 
-### sub _simple_lock ###########################################################
+### _simple_lock () ############################################################
 #
 # simple file lock
 # (create lock file)
   return;
 }
 
-### sub _simple_unlock #########################################################
+### _simple_unlock () ##########################################################
 #
 # simple file unlock
 # (unlink lock file)
   return;
 }
 
-### sub _reftime ###############################################################
+### _reftime () ################################################################
 #
 # determine reference time for violent unlock
 #
   $time;
 }
 
-### sub masterlocked ###########################################################
+### masterlocked () ############################################################
 #
 # check on master lock status of the file
 #
 #
 sub masterlocked {-f shift -> masterlock}
 
-### sub excl_announced #########################################################
+### excl_announced () ##########################################################
 #
 # check on exclusive lock announced status of the file
 #
 #
 sub excl_announced {-f shift -> lockfile}
 
-### sub exsh_announced #########################################################
+### exsh_announced () ##########################################################
 #
 # check on exclusive shared lock status of the file
 #
 #
 sub exsh_announced {-f shift -> exshlock}
 
+### purge () ###################################################################
+#
+# cover our traces after a file was removed
+#
+# Params: ~none~
+#
+# Return: ~none~
+#
+sub purge {
+  shift -> release;
+}
+
 # keep 'require' happy
 1;
 
 
 #
 sub VERSION {(q$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'}
 
-### sub _simple_lock ###########################################################
+### _simple_lock () ############################################################
 #
 # simple file lock
 # (create lock file)
   return;
 }
 
-### sub _simple_unlock #########################################################
+### _simple_unlock () ##########################################################
 #
 # simple file unlock
 # (unlink lock file)
   return;
 }
 
-### sub _reftime ###############################################################
+### _reftime () ################################################################
 #
 # determine reference time for violent unlock
 #
   $time;
 }
 
-### sub masterlocked ###########################################################
+### masterlocked () ############################################################
 #
 # check on master lock status of the file
 #
 #
 sub masterlocked {-l shift -> masterlock}
 
-### sub excl_announced #########################################################
+### excl_announced () ##########################################################
 #
 # check on exclusive lock announced status of the file
 #
 #
 sub excl_announced {-l shift -> lockfile}
 
-### sub exsh_announced #########################################################
+### exsh_announced () ##########################################################
 #
 # check on exclusive shared lock status of the file
 #
 #
 sub exsh_announced {-l shift -> exshlock}
 
+### purge () ###################################################################
+#
+# cover our traces after a file was removed
+#
+# Params: ~none~
+#
+# Return: ~none~
+#
+sub purge {
+  shift -> release;
+}
+
 # keep 'require' happy
 1;
 
 
 #
 sub VERSION {(q$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'}
 
-### sub _simple_lock ###########################################################
+### _simple_lock () ############################################################
 #
 # simple file lock
 # (unlink lock file)
   return;
 }
 
-### sub _simple_unlock #########################################################
+### _simple_unlock () ##########################################################
 #
 # simple file unlock
 # (create lock file)
   return;
 }
 
-### sub _reftime ###############################################################
+### _reftime () ################################################################
 #
 # determine reference time for violent unlock
 #
   $time;
 }
 
-### sub masterlocked ###########################################################
+### masterlocked () ############################################################
 #
 # check on master lock status of the file
 #
 #
 sub masterlocked {not -f shift -> masterlock}
 
-### sub excl_announced #########################################################
+### excl_announced () ##########################################################
 #
 # check on exclusive lock announced status of the file
 #
 #
 sub excl_announced {not -f shift -> lockfile}
 
-### sub exsh_announced #########################################################
+### exsh_announced () ##########################################################
 #
 # check on exclusive shared lock status of the file
 #
 #
 sub exsh_announced {not -f shift -> exshlock}
 
+### purge () ###################################################################
+#
+# cover our traces after a file was removed
+#
+# Params: ~none~
+#
+# Return: ~none~
+#
+sub purge {
+  my $self = shift;
+
+  $self -> set_ref (0);          # reference counter = 0
+  unlink ($self -> reflock);     # remove reference counter lock
+  unlink ($self -> lockfile);    # remove any write lock announce
+  unlink ($self -> exshlock);    # remove any excl shared lock
+  unlink ($self -> masterlock);  # remove master lock
+
+  return;
+}
+
 # keep 'require' happy
 1;