diff -Naur Singular-3-1-0/kernel/febase.cc Singular-3-1-0.new/kernel/febase.cc
--- Singular-3-1-0/kernel/febase.cc	2009-06-22 13:16:57.000000000 -0400
+++ Singular-3-1-0.new/kernel/febase.cc	2009-08-20 22:31:06.000000000 -0400
@@ -739,13 +739,15 @@
       char* dir_sep;
       struct passwd *pw_entry;
       strcpy (longpath, path);
-      dir_sep = strchr(longpath, DIR_SEP);
+      // TODO: fix the ugly casting away of const
+      dir_sep = const_cast<char*> ( strchr(longpath, DIR_SEP) );  
       *dir_sep = '\0';
       pw_entry = getpwnam(&longpath[1]);
       if (pw_entry != NULL)
       {
         strcpy(longpath, pw_entry->pw_dir);
-        dir_sep = strchr((char *)path, DIR_SEP);
+        // TODO: fix the ugly casting away of const
+        dir_sep = const_cast<char*> ( strchr((char*)path, DIR_SEP) );  
         strcat(longpath, dir_sep);
         path = longpath;
       }
diff -Naur Singular-3-1-0/kernel/mpr_complex.cc Singular-3-1-0.new/kernel/mpr_complex.cc
--- Singular-3-1-0/kernel/mpr_complex.cc	2009-06-22 13:16:57.000000000 -0400
+++ Singular-3-1-0.new/kernel/mpr_complex.cc	2009-08-20 22:28:58.000000000 -0400
@@ -83,7 +83,8 @@
   BOOLEAN neg=false;
   if (*in == '-') { in++; neg=TRUE; }
   char *s;
-  if ((s=strchr((char *)in,'E')) !=NULL)
+  /* TODO: fix the ugly casting away of const */ 
+  if ((s = const_cast<char*> ( strchr(in,'E') )) !=NULL) 
   {
     *s='e';
   }