diff --git a/textarchive/lib/TA/Hasher.pm b/textarchive/lib/TA/Hasher.pm
index 014c709a998c9357bae2d5328622aa601ebdb77d..83bdbde6e88653869c9dd588619045d667a12cd7 100644
--- a/textarchive/lib/TA/Hasher.pm
+++ b/textarchive/lib/TA/Hasher.pm
@@ -9,7 +9,7 @@ package TA::Hasher;
 use Data::Dumper;
 $Data::Dumper::Indent= 1;
 
-my %known_algorithms= map { $_ => 1 } qw(NULL S3C2L P3C3L);
+my %known_algorithms= map { $_ => 1 } qw(NULL S3C1L S3C2L P3C3L);
 
 sub new
 {
@@ -29,7 +29,12 @@ sub new
     $algorithm= $obj->{'algorithm'}= 'NULL';
   }
 
-  if ($algorithm eq 'S3C2L')
+  if ($algorithm eq 'S3C1L')
+  {
+    print "setting up S3C1L\n";
+    $obj->{'mkpo'}= \&TA::Hasher::S3C1L::mkpo;
+  }
+  elsif ($algorithm eq 'S3C2L')
   {
     print "setting up S3C2L\n";
     $obj->{'mkpo'}= \&TA::Hasher::S3C2L::mkpo;
@@ -115,6 +120,23 @@ sub mkpo
   return { 'L' => [] };
 }
 
+package TA::Hasher::S3C1L;
+
+sub mkpo
+{
+  my $S= shift;
+
+  return undef unless (defined ($S));
+
+  my @L;
+
+  if ($S =~ m#(.{1,3})$#)
+       { @L= ( $1 ); }
+  else { @L= ( $S ); }
+
+  return { 'L' => \@L };
+}
+
 package TA::Hasher::S3C2L;
 
 sub mkpo