diff --git a/C4/Members.pm b/C4/Members.pm
index 3114b0f7a4..ca1b02fb0e 100644
--- a/C4/Members.pm
+++ b/C4/Members.pm
@@ -662,6 +662,9 @@ sub ModMember {
my $rs = $schema->resultset('Borrower')->search({
borrowernumber => $new_borrower->{borrowernumber},
});
+
+ delete $new_borrower->{userid} if exists $new_borrower->{userid} and not $new_borrower->{userid};
+
my $execute_success = $rs->update($new_borrower);
if ($execute_success ne '0E0') { # only proceed if the update was a success
# ok if its an adult (type) it may have borrowers that depend on it as a guarantor
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/import_borrowers.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/import_borrowers.tt
index f31d7dab84..d9f25db0c1 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/import_borrowers.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/import_borrowers.tt
@@ -92,7 +92,7 @@
[% END %]
[% IF ERROR.duplicate_userid %]
- Userid [% ERROR.userid %] is already used by another patron or is empty.
+ Userid [% ERROR.userid %] is already used by another patron.
[% END %]
[% END %]
diff --git a/tools/import_borrowers.pl b/tools/import_borrowers.pl
index d5cf3b272b..190a5f2bca 100755
--- a/tools/import_borrowers.pl
+++ b/tools/import_borrowers.pl
@@ -253,14 +253,6 @@ if ( $uploadborrowers && length($uploadborrowers) > 0 ) {
next;
}
- # generate a proper login if none provided
- if ( $borrower{userid} eq '' || !Check_Userid( $borrower{userid} ) ) {
- push @errors, { duplicate_userid => 1, userid => $borrower{userid} };
- $invalid++;
- next LINE;
- }
-
-
if ($borrowernumber) {
# borrower exists
unless ($overwrite_cardnumber) {
@@ -280,6 +272,16 @@ if ( $uploadborrowers && length($uploadborrowers) > 0 ) {
$borrower{$col} = $member->{$col} if($member->{$col}) ;
}
}
+
+ # Check if the userid provided does not exist yet
+ if ( exists $borrower{userid}
+ and $borrower{userid}
+ and not Check_Userid( $borrower{userid}, $borrower{borrowernumber} ) ) {
+ push @errors, { duplicate_userid => 1, userid => $borrower{userid} };
+ $invalid++;
+ next LINE;
+ }
+
unless (ModMember(%borrower)) {
$invalid++;
# until we have better error trapping, we have no way of knowing why ModMember errored out...