Index: trunk/stac/src/stacRead.c
===================================================================
--- trunk/stac/src/stacRead.c	(revision 5743)
+++ trunk/stac/src/stacRead.c	(revision 5745)
@@ -124,8 +124,8 @@
     psTrace("stac.read.map", 5, "Polynomial order: %d\n", order);
 
-    psPlaneTransform *map = psPlaneTransformAlloc(order + 1, order + 1); // The transformation
+    psPlaneTransform *map = psPlaneTransformAlloc(order, order); // The transformation
     // Set coefficient masks
-    for (int i = 0; i < order + 1; i++) {
-        for (int j = 0; j < order + 1; j++) {
+    for (int i = 0; i <= order; i++) {
+        for (int j = 0; j <= order; j++) {
             if (i + j > order + 1) {
                 map->x->mask[i][j] = 1;
@@ -140,6 +140,6 @@
     // Read x coefficients
     psTrace("stac.read.map", 7, "x' = \n");
-    for (int k = 0; k < order + 1; k++) {
-        for (int j = 0; j < k + 1; j++) {
+    for (int k = 0; k <= order; k++) {
+        for (int j = 0; j <= k; j++) {
             int i = k - j;
             if (fscanf(mapfp, "%lf", &map->x->coeff[i][j]) != 1) {
@@ -154,6 +154,6 @@
     // Read y coefficients
     psTrace("stac.read.maps", 7, "y' = \n");
-    for (int k = 0; k < order + 1; k++) {
-        for (int j = 0; j < k + 1; j++) {
+    for (int k = 0; k <= order; k++) {
+        for (int j = 0; j <= k; j++) {
             int i = k - j;
             if (fscanf(mapfp, "%lf", &map->y->coeff[i][j]) != 1) {
@@ -188,5 +188,5 @@
         }
         // Read the file
-        sprintf(mapfile,"%s.map",filenames->data[i]);
+        sprintf(mapfile, "%s.map", (const char*)filenames->data[i]);
         maps->data[i] = stacReadMap(mapfile);
         if (maps->data[i] == NULL) {
