Index: /trunk/DataStoreServer/scripts/dsreg
===================================================================
--- /trunk/DataStoreServer/scripts/dsreg	(revision 20292)
+++ /trunk/DataStoreServer/scripts/dsreg	(revision 20293)
@@ -378,15 +378,15 @@
         die("failed to insert $fileset") if (!defined($count) or ($count == 0E0));
 
-        my $fileset_id = $dbh->last_insert_id(undef, undef, undef, undef);
-
-        die("last_insert_id returned undef") if (!defined($fileset_id));
-        die("last_insert_id returned 0") if (!$fileset_id);
-
-        # make sure that no-one got in and created a fileset with this name while we were busy
-        $count = $dbh->do("SELECT fileset_id FROM dsFileset WHERE fileset_name = ?" .
-                        " AND prod_id = $prod_id", undef, ($fileset));
-        if ($count > 1) {
+        # I don't use last_insert_id() because I've seen some problems with it and
+        # the DBI perldoc says that it's use is problematic
+        my @fsids = $dbh->selectrow_array("SELECT fileset_id FROM dsFileset" .
+                        " WHERE fileset_name = '$fileset' AND prod_id = $prod_id");
+        my $nfs = @fsids;
+        if (!$nfs) {
+            die("fileset '$fileset' missing even though we just added it");
+        } elsif ($nfs > 1) {
             die("Fileset '$fileset' already exists under $product.");
         }
+        my $fileset_id = $fsids[0];
 
         foreach my $ref (@files) {
