-    local *TEMP;
-    unless (sysopen (TEMP, $filename, O_CREAT | O_WRONLY | O_TRUNC | $O_BINARY)) {
-      $self->set_error ('could not open to write temp summary file '.$filename);
+    my $temp = new Lock::Handle ($summary -> filename . '.temp');
+    unless ($temp -> open (O_CREAT | O_WRONLY | O_TRUNC | $O_BINARY)) {
+      $self->set_error ('could not open to write temp summary file '.$temp -> filename);