diff --git a/lib/basis.gd b/lib/basis.gd
index 9698fb09c9..1c43d6542f 100644
--- a/lib/basis.gd
+++ b/lib/basis.gd
@@ -786,9 +786,10 @@ DeclareOperation( "RelativeBasisNC", [ IsBasis, IsHomogeneousList ] );
## (see ).
##
## name must be a string,
-## a filter f with this name is created, and
+## a filter f with this name is created which implies
+## , and
## a logical implication from the join of f with
-## and to
+## to
## is installed.
##
## record must be a record with the following components.
@@ -895,6 +896,7 @@ DeclareGlobalFunction( "CheckForHandlingByNiceBasis" );
InstallGlobalFunction( "DeclareHandlingByNiceBasis", function( name, info )
local entry;
DeclareFilter( name );
+ InstallTrueMethod( IsFreeLeftModule, ValueGlobal( name ) );
entry := [ ValueGlobal( name ), info ];
Add( NiceBasisFiltersInfo, entry, 1 );
end );
diff --git a/lib/basis.gi b/lib/basis.gi
index 543b7ec8ed..90da744ad6 100644
--- a/lib/basis.gi
+++ b/lib/basis.gi
@@ -693,7 +693,7 @@ InstallGlobalFunction( "InstallHandlingByNiceBasis",
entry:= First( NiceBasisFiltersInfo,
x -> IsIdenticalObj( filter, x[1] ) );
entry[3] := record.detect;
- filter:= filter and IsFreeLeftModule and IsAttributeStoringRep;
+ filter:= filter and IsAttributeStoringRep;
InstallTrueMethod( IsHandledByNiceBasis, filter );
# Install the methods.
diff --git a/lib/module.gd b/lib/module.gd
index 85f5a57464..2ad310ed7c 100644
--- a/lib/module.gd
+++ b/lib/module.gd
@@ -247,8 +247,10 @@ DeclareProperty( "IsFullMatrixModule", IsFreeLeftModule, 20 );
##
## <#/GAPDoc>
##
-DeclareCategory( "IsHandledByNiceBasis", IsFreeLeftModule );
-#T why not `DeclareFilter' ?
+DeclareCategory( "IsHandledByNiceBasis", IsFreeLeftModule, 3 );
+# We want that 'IsFreeLeftModule and IsHandledByNiceBasis' has a higher rank
+# than 'IsFreeLeftModule and IsFiniteDimensional'.
+# (There are concurrent '\in' methods for the two situations.)
#############################################################################