Index: tol/btol/set_type/setgra.cpp
===================================================================
--- tol/btol/set_type/setgra.cpp	(revision c31ee197b01c7b67bb9669573dd735c675e657ea)
+++ tol/btol/set_type/setgra.cpp	(revision c585b868eb111173a712cdf8088b1ffc3579ffcc)
@@ -1527,6 +1527,17 @@
 //--------------------------------------------------------------------
 {
+  BList* result   = NIL;
+  BSet& orig = Set(Arg(1));
+  if(orig.Card()==0) { return; }
+  else if(orig.Card()==1)
+  {
+    BUserSet* cl = NewSet("","Class 1",orig.ToList(),
+                          NIL, BSet::Generic);
+    result = NCons(cl);
+    contens_.RobStruct(result,NIL,BSet::Generic);
+    return;
+  }
+  BSet sorted = orig;
   BCode&  code    = Code(Arg(2));
-  BList* result   = NIL;
   BList* aux      = NIL;
   BList* classLst = NIL;
@@ -1537,14 +1548,5 @@
   if(relationType == "partial order")
   {
-    BSet sorted = Set(Arg(1));
     BInt m = 1;
-    if(sorted.Card()<=1)
-    {
-      BUserSet* cl = NewSet("","Class 1",sorted.ToList(),
-                            NIL, BSet::Generic);
-      result = NCons(cl);
-      contens_.RobStruct(result,NIL,BSet::Generic);
-      return;
-    }
   //Std(Out()+"\nClassifing by "+Code(Arg(2))->Name()+ " criterium");
     if(!sorted.Sort(code))
