diff --git a/lib/ctblmaps.gd b/lib/ctblmaps.gd
index 009c38b6b3..231fa9478e 100644
--- a/lib/ctblmaps.gd
+++ b/lib/ctblmaps.gd
@@ -956,7 +956,12 @@ DeclareAttributeSuppCT( "NamesOfFusionSources",
## for the argument quick;
## especially, as soon as only one possibility remains
## then this possibility is returned immediately;
-## the default value is false,
+## the default value is false
+## (note that in situations where the group of tbl has no subgroups
+## with character table subtbl, it may happen that setting
+## quick to true causes
+## to return solutions,
+## whereas the value false yields an empty list),
##
## verify
## -
@@ -2492,7 +2497,7 @@ DeclareGlobalFunction( "FusionsAllowedByRestrictions" );
## constants.
##
## The argument quick must be a Boolean; if it is true then
-## only those triples are checked for which for which at least two entries
+## only those triples are checked for which at least two entries
## in fusions have different images.
##
##
diff --git a/lib/ctblmaps.gi b/lib/ctblmaps.gi
index 431c4a3a1f..4a279dca9e 100644
--- a/lib/ctblmaps.gi
+++ b/lib/ctblmaps.gi
@@ -4492,11 +4492,17 @@ InstallGlobalFunction( ConsiderStructureConstants,
sc:= ClassMultiplicationCoefficient( tbl, trpl[1], trpl[2],
trpl[3] );
if sc < subsc then
+ fusions:= Filtered( fusions,
+ x -> x{ [ i, j, kk ] } <> trpl );
+ if Length( fusions ) = 0 then
+ Info( InfoCharacterTable, 2,
+ "ConsiderStructureConstants: contradiction for ",
+ [ i, j, kk ] );
+ return fusions;
+ fi;
Info( InfoCharacterTable, 2,
"ConsiderStructureConstants: improvement for ",
[ i, j, kk ] );
- fusions:= Filtered( fusions,
- x -> x{ [ i, j, kk ] } <> trpl );
parm:= Parametrized( fusions );
fi;
od;
diff --git a/tst/testinstall/ctblmaps.tst b/tst/testinstall/ctblmaps.tst
new file mode 100644
index 0000000000..a40f5bb942
--- /dev/null
+++ b/tst/testinstall/ctblmaps.tst
@@ -0,0 +1,18 @@
+#@local s, t, maps
+gap> START_TEST( "ctblmaps.tst" );
+
+# `ConsiderStructureConstants` can unexpectedly exclude all candidates.
+# (Benjamin Sambale found examples for that.)
+gap> if TestPackageAvailability("ctbllib") <> fail and
+> LoadPackage("ctbllib", false) <> fail then
+> s:= CharacterTable( "2.A6" );;
+> t:= CharacterTable( "Co3" );;
+> maps:= [ [ 1, 2, 8, 4, 11, 4, 13, 18, 18, 9, 22, 9, 22 ],
+> [ 1, 2, 8, 4, 11, 4, 13, 17, 17, 9, 22, 9, 22 ] ];;
+> if Length( ConsiderStructureConstants( s, t, maps, true ) ) <> 0 then
+> Error( "test of ConsiderStructureConstants failed" );
+> fi;
+> fi;
+
+#
+gap> STOP_TEST( "ctblmaps.tst" );