Index: NEMO/releases/release-4.0/src/OCE/BDY/bdyini.F90
===================================================================
--- NEMO/releases/release-4.0/src/OCE/BDY/bdyini.F90	(revision 10983)
+++ NEMO/releases/release-4.0/src/OCE/BDY/bdyini.F90	(revision 10984)
@@ -951,5 +951,5 @@
                        & nbrdta(ib,igrd,ib_bdy) == ir  ) THEN
                        ii = nbidta(ib,igrd,ib_bdy)- iw_b(1)+2
-                       if((com_west_b .ne. 1) .and. (ii == (nlcit(nowe+1)-1))) then
+                       if( ii == (nlcit(nowe+1)-1) ) then
                           ij = nbjdta(ib,igrd,ib_bdy) - is_b(1)+2
                           if((ij == 2) .and. (nbondj == 0 .or. nbondj == 1)) then
@@ -965,5 +965,5 @@
                        & nbrdta(ib,igrd,ib_bdy) == ir  ) THEN
                        ii = nbidta(ib,igrd,ib_bdy)- iw_b(2)+2
-                       if((com_east_b .ne. 1) .and. (ii == 2)) then
+                       if( ii == 2 ) then
                           ij = nbjdta(ib,igrd,ib_bdy) - is_b(2)+2
                           if((ij == 2) .and. (nbondj == 0 .or. nbondj == 1)) then
@@ -980,5 +980,5 @@
                        & nbrdta(ib,igrd,ib_bdy) == ir  ) THEN
                        ii = nbidta(ib,igrd,ib_bdy)- iw_b(1)+2
-                       if((com_west_b .ne. 1) .and. (ii == (nlcit(nowe+1)-1))) then
+                       if( ii == (nlcit(nowe+1)-1) ) then
                           ij = nbjdta(ib,igrd,ib_bdy) - is_b(1)+2
                           if((ij == 2) .and. (nbondj == 0 .or. nbondj == 1)) then
@@ -995,5 +995,5 @@
                        & nbrdta(ib,igrd,ib_bdy) == ir  ) THEN
                        ii = nbidta(ib,igrd,ib_bdy)- iw_b(2)+2
-                       if((com_east_b .ne. 1) .and. (ii == 2)) then
+                       if( ii == 2 ) then
                           ij = nbjdta(ib,igrd,ib_bdy) - is_b(2)+2
                           if((ij == 2) .and. (nbondj == 0 .or. nbondj == 1)) then
Index: NEMO/releases/release-4.0/src/OCE/LBC/lib_mpp.F90
===================================================================
--- NEMO/releases/release-4.0/src/OCE/LBC/lib_mpp.F90	(revision 10983)
+++ NEMO/releases/release-4.0/src/OCE/LBC/lib_mpp.F90	(revision 10984)
@@ -1480,6 +1480,7 @@
       LOGICAL         , OPTIONAL, INTENT(in   ) ::   ld_lbc, ld_glb, ld_dlg
       !!
+      CHARACTER(len=128)                        ::   ccountname  ! name of a subroutine to count communications
       LOGICAL ::   ll_lbc, ll_glb, ll_dlg
-      INTEGER ::    ji,  jj,  jk,  jh, jf   ! dummy loop indices
+      INTEGER ::    ji,  jj,  jk,  jh, jf, jcount   ! dummy loop indices
       !!----------------------------------------------------------------------
       !
@@ -1538,13 +1539,21 @@
          WRITE(numcom,*) ' '
          WRITE(numcom,*) ' lbc_lnk called'
-         jj = 1
-         DO ji = 2, n_sequence_lbc
-            IF( crname_lbc(ji-1) /= crname_lbc(ji) ) THEN
-               WRITE(numcom,'(A, I4, A, A)') ' - ', jj,' times by subroutine ', TRIM(crname_lbc(ji-1))
-               jj = 0
+         DO ji = 1, n_sequence_lbc - 1
+            IF ( crname_lbc(ji) /= 'already counted' ) THEN
+               ccountname = crname_lbc(ji)
+               crname_lbc(ji) = 'already counted'
+               jcount = 1
+               DO jj = ji + 1, n_sequence_lbc
+                  IF ( ccountname ==  crname_lbc(jj) ) THEN
+                     jcount = jcount + 1
+                     crname_lbc(jj) = 'already counted'
+                  END IF
+               END DO
+               WRITE(numcom,'(A, I4, A, A)') ' - ', jcount,' times by subroutine ', TRIM(ccountname)
             END IF
-            jj = jj + 1 
          END DO
-         WRITE(numcom,'(A, I4, A, A)') ' - ', jj,' times by subroutine ', TRIM(crname_lbc(n_sequence_lbc))
+         IF ( crname_lbc(n_sequence_lbc) /= 'already counted' ) THEN
+            WRITE(numcom,'(A, I4, A, A)') ' - ', 1,' times by subroutine ', TRIM(crname_lbc(ncom_rec_max))
+         END IF
          WRITE(numcom,*) ' '
          IF ( n_sequence_glb > 0 ) THEN
