diff --git a/libdecnumber/ChangeLog b/libdecnumber/ChangeLog
index dc20db79e59db76262f68873ecba2d529608965d..99096f813ee48919e3e4223f1c842c49342db85b 100644
--- a/libdecnumber/ChangeLog
+++ b/libdecnumber/ChangeLog
@@ -1,3 +1,16 @@
+2006-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* decContext.c (decContextSetStatusFromString): Constify.
+	* decContext.h (decContextSetStatusFromString): Likewise.
+	* decNumber.c (decNumberFromString): Likewise.
+	* decNumber.h (decNumberFromString): Likewise.
+	* decimal128.c (decimal128FromString): Likewise.
+	* decimal128.h (decimal128FromString): Likewise.
+	* decimal32.c (decimal32FromString): Likewise.
+	* decimal32.h (decimal32FromString): Likewise.
+	* decimal64.c (decimal64FromString): Likewise.
+	* decimal64.h (decimal64FromString): Likewise.
+
 2006-07-25  Paolo Bonzini  <bonzini@gnu.org>
 
 	PR build/26188
diff --git a/libdecnumber/decContext.c b/libdecnumber/decContext.c
index 9cf96334c1fdd02c3fb5a86c56b4d2230226f4e8..8f5b683184e8a3b3d0b939fea37a55cb706c4bb4 100644
--- a/libdecnumber/decContext.c
+++ b/libdecnumber/decContext.c
@@ -162,7 +162,7 @@ decContextStatusToString (decContext * context)
 /*    returned.                                                       */
 /* ------------------------------------------------------------------ */
 decContext *
-decContextSetStatusFromString (decContext * context, char *string)
+decContextSetStatusFromString (decContext * context, const char *string)
 {
   if (strcmp (string, DEC_Condition_CS) == 0)
     return decContextSetStatus (context, DEC_Conversion_syntax);
diff --git a/libdecnumber/decContext.h b/libdecnumber/decContext.h
index 537d319f1840eba194fcfff9a8218999dbc227f6..d2e18db2c05be4eee9e26d302eb313f763294932 100644
--- a/libdecnumber/decContext.h
+++ b/libdecnumber/decContext.h
@@ -173,6 +173,6 @@ typedef struct
 decContext *decContextDefault (decContext *, int32_t);
 decContext *decContextSetStatus (decContext *, uint32_t);
 const char *decContextStatusToString (decContext *);
-decContext *decContextSetStatusFromString (decContext *, char *);
+decContext *decContextSetStatusFromString (decContext *, const char *);
 
 #endif
diff --git a/libdecnumber/decNumber.c b/libdecnumber/decNumber.c
index 3f5cc9f3a44658915664b237e2fbf4aa346aaf96..bd6b57b805c34976a8ec7bd4d6e75796c71c80ee 100644
--- a/libdecnumber/decNumber.c
+++ b/libdecnumber/decNumber.c
@@ -339,7 +339,7 @@ decNumberToEngString (decNumber * dn, char *string)
 /* If bad syntax is detected, the result will be a quiet NaN.         */
 /* ------------------------------------------------------------------ */
 decNumber *
-decNumberFromString (decNumber * dn, char chars[], decContext * set)
+decNumberFromString (decNumber * dn, const char chars[], decContext * set)
 {
   Int exponent = 0;		/* working exponent [assume 0] */
   uByte bits = 0;		/* working flags [assume +ve] */
@@ -348,11 +348,11 @@ decNumberFromString (decNumber * dn, char chars[], decContext * set)
   Unit *allocres = NULL;	/* -> allocated result, iff allocated */
   Int need;			/* units needed for result */
   Int d = 0;			/* count of digits found in decimal part */
-  char *dotchar = NULL;		/* where dot was found */
-  char *cfirst;			/* -> first character of decimal part */
-  char *last = NULL;		/* -> last digit of decimal part */
-  char *firstexp;		/* -> first significant exponent digit */
-  char *c;			/* work */
+  const char *dotchar = NULL;	/* where dot was found */
+  const char *cfirst;		/* -> first character of decimal part */
+  const char *last = NULL;	/* -> last digit of decimal part */
+  const char *firstexp;		/* -> first significant exponent digit */
+  const char *c;		/* work */
   Unit *up;			/* .. */
 #if DECDPUN>1
   Int i;			/* .. */
diff --git a/libdecnumber/decNumber.h b/libdecnumber/decNumber.h
index a4e81cd405391fc3f788b9cdc53f54645faa5d13..797e781eaa4a320e22d26940dc2a13fa89faac1f 100644
--- a/libdecnumber/decNumber.h
+++ b/libdecnumber/decNumber.h
@@ -129,7 +129,7 @@ typedef struct
 #endif
 
   /* Conversions */
-decNumber *decNumberFromString (decNumber *, char *, decContext *);
+decNumber *decNumberFromString (decNumber *, const char *, decContext *);
 char *decNumberToString (decNumber *, char *);
 char *decNumberToEngString (decNumber *, char *);
 
diff --git a/libdecnumber/decimal128.c b/libdecnumber/decimal128.c
index 07fcd9b08b7a0ad4635dec9a3915bac3377bb49a..b8794e7e251bbf544e80cd73e79c71d59fa7fb89 100644
--- a/libdecnumber/decimal128.c
+++ b/libdecnumber/decimal128.c
@@ -296,7 +296,7 @@ decimal128ToEngString (decimal128 * d128, char *string)
 /* If an error occurs, the result will be a valid decimal128 NaN.     */
 /* ------------------------------------------------------------------ */
 decimal128 *
-decimal128FromString (decimal128 * result, char *string, decContext * set)
+decimal128FromString (decimal128 * result, const char *string, decContext * set)
 {
   decContext dc;		/* work */
   decNumber dn;			/* .. */
diff --git a/libdecnumber/decimal128.h b/libdecnumber/decimal128.h
index 5c697b9ad640fae0fe96210ec651a2a760f13b33..495b6e3022fc4c154f1f24dc36664490ebaf2387 100644
--- a/libdecnumber/decimal128.h
+++ b/libdecnumber/decimal128.h
@@ -102,7 +102,7 @@ typedef struct
 #endif
 
   /* String conversions */
-decimal128 *decimal128FromString (decimal128 *, char *, decContext *);
+decimal128 *decimal128FromString (decimal128 *, const char *, decContext *);
 char *decimal128ToString (decimal128 *, char *);
 char *decimal128ToEngString (decimal128 *, char *);
 
diff --git a/libdecnumber/decimal32.c b/libdecnumber/decimal32.c
index a31a3b97274b68e21aaff225917fee2f0b973dc8..88f79e9093ef532daf54da5bc3b253fa2ded1480 100644
--- a/libdecnumber/decimal32.c
+++ b/libdecnumber/decimal32.c
@@ -288,7 +288,7 @@ decimal32ToEngString (decimal32 * d32, char *string)
 /* If an error occurs, the result will be a valid decimal32 NaN.      */
 /* ------------------------------------------------------------------ */
 decimal32 *
-decimal32FromString (decimal32 * result, char *string, decContext * set)
+decimal32FromString (decimal32 * result, const char *string, decContext * set)
 {
   decContext dc;		/* work */
   decNumber dn;			/* .. */
diff --git a/libdecnumber/decimal32.h b/libdecnumber/decimal32.h
index dd1c2c14b77f51c9ed7a392937a18b16722d74bb..d00ae5b92d4f273307f6ea0cce3dd5a7297e067f 100644
--- a/libdecnumber/decimal32.h
+++ b/libdecnumber/decimal32.h
@@ -92,7 +92,7 @@ typedef struct
 #endif
 
 /* String conversions.  */
-decimal32 *decimal32FromString (decimal32 *, char *, decContext *);
+decimal32 *decimal32FromString (decimal32 *, const char *, decContext *);
 char *decimal32ToString (decimal32 *, char *);
 char *decimal32ToEngString (decimal32 *, char *);
 
diff --git a/libdecnumber/decimal64.c b/libdecnumber/decimal64.c
index ee166c786c89dc2d3a95ca49a3c2c2918a15bfa7..5514d12cc53080ad90d390d9c0a8731b7eb3eb5e 100644
--- a/libdecnumber/decimal64.c
+++ b/libdecnumber/decimal64.c
@@ -287,7 +287,7 @@ decimal64ToEngString (decimal64 * d64, char *string)
 /* If an error occurs, the result will be a valid decimal64 NaN.      */
 /* ------------------------------------------------------------------ */
 decimal64 *
-decimal64FromString (decimal64 * result, char *string, decContext * set)
+decimal64FromString (decimal64 * result, const char *string, decContext * set)
 {
   decContext dc;		/* work */
   decNumber dn;			/* .. */
diff --git a/libdecnumber/decimal64.h b/libdecnumber/decimal64.h
index 55bb9494d6e7b171e1ed68b02718ae647ccea0d3..7416f549c0785bb3f26f8fa894189692618ac8ad 100644
--- a/libdecnumber/decimal64.h
+++ b/libdecnumber/decimal64.h
@@ -96,7 +96,7 @@ typedef struct
 #endif
 
   /* String conversions */
-decimal64 *decimal64FromString (decimal64 *, char *, decContext *);
+decimal64 *decimal64FromString (decimal64 *, const char *, decContext *);
 char *decimal64ToString (decimal64 *, char *);
 char *decimal64ToEngString (decimal64 *, char *);