Index: src/bord.cpp
===================================================================
--- src/bord.cpp	(revision 610)
+++ src/bord.cpp	(working copy)
@@ -11146,15 +11146,22 @@
 	    }
 	    break;}
 	case ibis::UINT: {
-	    res.uintsnames.push_back(buffer[j].cname);
-	    if (buffer[j].cval) {
-		res.uintsvalues.push_back
-		    ((* static_cast<const array_t<const uint32_t>*>
-		      (buffer[j].cval))[curRow]);
-	    }
-	    else {
-		res.uintsvalues.push_back(0xFFFFFFFF);
-	    }
+	    if (buffer[j].cval && buffer[j].dic ) {
+            const array_t<const uint32_t> *vals = static_cast<const array_t<const uint32_t>*>(buffer[j].cval);
+            const uint32_t val = (*vals)[curRow];
+            res.catsnames.push_back(buffer[j].cname);
+            res.catsvalues.push_back((*buffer[j].dic)[val]);
+	    } else {
+            res.uintsnames.push_back(buffer[j].cname);
+            if (buffer[j].cval) {
+            res.uintsvalues.push_back
+                ((* static_cast<const array_t<const uint32_t>*>
+                  (buffer[j].cval))[curRow]);
+            }
+            else {
+                res.uintsvalues.push_back(0xFFFFFFFF);
+            }
+        }
 	    break;}
 	case ibis::LONG: {
 	    res.longsnames.push_back(buffer[j].cname);
