diff --git a/gnucash.cc b/gnucash.cc
index 7d31526..c4edd77 100644
--- a/gnucash.cc
+++ b/gnucash.cc
@@ -201,7 +201,7 @@ static amount_t convert_number(const std::string& number,
 {
   const char * num = number.c_str();

-  if (char * p = std::strchr(num, '/')) {
+  if (const char * p = std::strchr(num, '/')) {
     std::string numer_str(num, p - num);
     std::string denom_str(p + 1);

diff --git a/option.cc b/option.cc
index 10c23a7..8f2fead 100644
--- a/option.cc
+++ b/option.cc
@@ -892,7 +892,7 @@ OPT_BEGIN(market, "V") {
 namespace {
   void parse_price_setting(const char * optarg)
   {
-    char * equals = std::strchr(optarg, '=');
+    const char * equals = std::strchr(optarg, '=');
     if (! equals)
       return;

diff --git a/textual.cc b/textual.cc
index 2033106..d897368 100644
--- a/textual.cc
+++ b/textual.cc
@@ -298,8 +298,8 @@ transaction_t * parse_transaction(char * line, account_t * account,
       DEBUG_PRINT("ledger.textual.parse", "line " << linenum << ": " <<
		  "Parsed a note '" << xact->note << "'");

-      if (char * b = std::strchr(xact->note.c_str(), '['))
-	if (char * e = std::strchr(xact->note.c_str(), ']')) {
+      if (const char * b = std::strchr(xact->note.c_str(), '['))
+	if (const char * e = std::strchr(xact->note.c_str(), ']')) {
	  char buf[256];
	  std::strncpy(buf, b + 1, e - b - 1);
	  buf[e - b - 1] = '\0';
