Index: trunk/psModules/src/concepts/pmConceptsStandard.c
===================================================================
--- trunk/psModules/src/concepts/pmConceptsStandard.c	(revision 12890)
+++ trunk/psModules/src/concepts/pmConceptsStandard.c	(revision 13646)
@@ -318,19 +318,26 @@
 
     switch (concept->type) {
-    case PS_DATA_STRING: {
-            psList *regions = psStringSplit(concept->data.V, " ;", false); // List of regions
-            psListIterator *regionsIter = psListIteratorAlloc(regions, PS_LIST_HEAD, false); // Iterator
-            psString regionString = NULL; // Region string from iteration
-            while ((regionString = psListGetAndIncrement(regionsIter))) {
-                psRegion *region = psAlloc(sizeof(psRegion)); // The region
-                *region = psRegionFromString(regionString);
-                psListAdd(biassecs, PS_LIST_TAIL, region);
-                psFree(region);           // Drop reference
-            }
-            psFree(regionsIter);
-            psFree(regions);
-            break;
-        }
-    case PS_DATA_LIST: {
+      case PS_DATA_STRING: {
+	  // a single BIASSEC is of the form [AAAA]
+	  // we may have multiple BIASSEC entries separated by space, commas, or semicolons
+	  char *p = strchr (concept->data.V, '[');
+	  while (p != NULL) {
+	      char *q = strchr (p, ']');
+	      if (q == NULL) break;
+	      char *regionString = psAlloc (q - p + 2);
+	      strncpy (regionString, p, q - p + 1);
+	      regionString[q - p + 1] = 0;
+	  
+	      psRegion *region = psAlloc(sizeof(psRegion)); // The region
+	      *region = psRegionFromString(regionString);
+	      psListAdd(biassecs, PS_LIST_TAIL, region);
+	      psFree(region);           // Drop reference
+	      psFree(regionString);     // Drop reference
+	  
+	      p = strchr (q, '[');
+	  }
+	  break;
+      }
+      case PS_DATA_LIST: {
             psList *regions = concept->data.V; // The list of regions
             psListIterator *regionsIter = psListIteratorAlloc(regions, PS_LIST_HEAD, false); // Iterator
