--- xlat.c.orig	2007-10-24 10:45:46.000000000 +0200
+++ xlat.c	2007-10-24 10:49:27.000000000 +0200
@@ -775,9 +775,15 @@
 
 			case ':':
 				if (!spaces && p[1] == '-') {
-					p += 2;
-					stop = 1;
-					break;
+					/* 
+					* accept the ':-' alternative only on the toplevel,
+					* ignore alternatives of recursive calls 
+					*/
+					if (openbraces == delimitbrace + 1) {
+						p += 2;
+						stop = 1;
+						break;
+					}
 				}
 				*pa++ = *p++;
 				break;
