Index: tol/btol/bgrammar/spfuninst.cpp
===================================================================
--- tol/btol/bgrammar/spfuninst.cpp	(revision b2a343a29090ceb9c3ad1189df533e80760f65ab)
+++ tol/btol/bgrammar/spfuninst.cpp	(revision 0e896b71b55cc4bfedec7bb0d2ebf241eb45dfe9)
@@ -507,17 +507,32 @@
   else
   {
-    if(args.Card()==2)
+    if(args.Card()>=2)
     {
 	    uTxt = args[1];
 	    uSet = args[2];
-	    if(uTxt && uSet && Set(uSet).Card())
+      
+	    if(uTxt && uSet)
 	    {
-	      BText txt	 = uTxt->Dump();
+        BSet& set = Set(uSet);
+	      BText txt	= uTxt->Dump();
 				txt = txt.SubString(1,txt.Length()-2);
 	      BStandardOperator* ope = (BStandardOperator*)gra->FindOperator(txt);
 	      if(ope)
 	      {
-		      BSet&  set  = Set(uSet);
-		      if(set.Card()>0) 
+		      if(set.Card()==0) 
+          {
+            if(args.Card()==3)
+            {
+	            result = args[3];
+            }
+            else
+            {
+              Error(I2("Cannot evaluate Group over empty set without "
+                       "a default value.",
+				               "No sepuede evaluar Group sobre un conjunto vacío "
+                       "sin valor por defecto."));
+            }
+          }
+          else  
           {
 		        BBool ok = BTRUE;
@@ -1959,6 +1974,6 @@
 
   AddInstance("Group",
-  I2("(Text function, Set s)",
-     "(Text función, Set s)"),
+  I2("(Text function, Set s [, Anything defaultForEmpty])",
+     "(Text función, Set s [, Anything defaultForEmpty])"),
   I2("Evaluates a function taking as arguments the elements of a set.\n\n"
      "Example:\n"
