diff -rupN adom-sage-0.9.1/adom-sage.h adom-sage-0.9.1-2009-05-12/adom-sage.h
--- adom-sage-0.9.1/adom-sage.h	2002-11-20 10:20:03.000000000 -0600
+++ adom-sage-0.9.1-2009-05-12/adom-sage.h	2009-05-12 11:40:07.955717680 -0500
@@ -8,6 +8,7 @@
 
 #include <stdio.h>
 #include <stdarg.h>
+#include <cstring>
 
 #include "stl.h"
 
@@ -115,7 +116,7 @@ const int log_libcalls = 0x40;    /* Log
 const int log_waddch = 0x80;      /* Log calls to waddch - very verbose */
 const int log_mouse = 0x100;      /* Log mouse activity */
 
-inline void log(int log_flag, char *str, ...)
+inline void log(int log_flag, const char * str, ...)
 {
 	if ((log_level & log_flag) && log_file) {
 		va_list ap;
@@ -126,7 +127,7 @@ inline void log(int log_flag, char *str,
 	}
 }
 
-int sage_error(char *msg);
+int sage_error(const char *msg);
 	// Displays an error message, goes to passive mode, and returns 0
 
 
@@ -308,7 +309,7 @@ void fill_char (WINDOW *win, chtype ch, 
 bool find_ch(WINDOW *win, chtype ch, int &y, int &x);
 void move_cursor(WINDOW *win, int y, int x);
 
-typedef int MouseCookie;
+typedef mmask_t MouseCookie;
 MouseCookie mouse_enable();
 void mouse_restore(MouseCookie cookie);
 void get_mouse_event(int *y, int *x, int *button);
diff -rupN adom-sage-0.9.1/config.h adom-sage-0.9.1-2009-05-12/config.h
--- adom-sage-0.9.1/config.h	2002-11-20 10:20:03.000000000 -0600
+++ adom-sage-0.9.1-2009-05-12/config.h	1969-12-31 18:00:00.000000000 -0600
@@ -1,2 +0,0 @@
-#define LIBNCURSES "/usr/lib/libncurses.so.5"
-#define LIBC "/lib/i686/libc.so.6"
diff -rupN adom-sage-0.9.1/io.cc adom-sage-0.9.1-2009-05-12/io.cc
--- adom-sage-0.9.1/io.cc	2002-11-20 10:20:03.000000000 -0600
+++ adom-sage-0.9.1-2009-05-12/io.cc	2009-05-12 11:38:34.739717531 -0500
@@ -165,10 +165,10 @@ int get_key(WINDOW *win, int cursor_visi
 		queue->pop_front();
 		no_wrefresh = config->quiet_macros && !queue->empty();
 	} else {
-		int y, x, old_visibility;
-		chtype ch;
-		attr_t attrs;
-		short pair;
+		int y = 0, x = 0, old_visibility = 0;
+		chtype ch = 0;
+		attr_t attrs = 0;
+		short pair = 0;
 
 		// Handle cursor - redraw or hide if desired.
 		if (cursor_visibility != 1) {
@@ -308,7 +308,7 @@ void move_cursor(WINDOW *win, int y, int
 MouseCookie mouse_enable(void)
 {
 	MouseCookie result;
-	mousemask(ALL_MOUSE_EVENTS, (mmask_t*) &result);
+	mousemask(ALL_MOUSE_EVENTS, &result);
 	return result;
 }
 
diff -rupN adom-sage-0.9.1/library.cc adom-sage-0.9.1-2009-05-12/library.cc
--- adom-sage-0.9.1/library.cc	2002-11-20 10:20:03.000000000 -0600
+++ adom-sage-0.9.1-2009-05-12/library.cc	2009-05-12 11:38:30.643764248 -0500
@@ -80,7 +80,7 @@ UNLINK    real_unlink;
 /* Linux-specific initialization; Windows-specific stuff is at end of file */
 void load_dynamic_libraries()
 {
-	char *libc_path, *curses_path;
+	const char *libc_path, *curses_path;
 	void *handle;
 
 	// Locate libraries to use
@@ -139,7 +139,7 @@ void initialize()
 	if (debug_flags)
 		sscanf(debug_flags, "%i", &log_level);
 	if (log_level) {
-		char *log_path = getenv("SAGE_LOGFILE");
+		const char *log_path = getenv("SAGE_LOGFILE");
 		if (log_path == NULL)
 			log_path = LOG_PATH;
 		log_file = fopen(log_path, "w");
diff -rupN adom-sage-0.9.1/sage-frontend.cc adom-sage-0.9.1-2009-05-12/sage-frontend.cc
--- adom-sage-0.9.1/sage-frontend.cc	2002-11-20 10:20:03.000000000 -0600
+++ adom-sage-0.9.1-2009-05-12/sage-frontend.cc	2009-05-12 11:39:25.881064042 -0500
@@ -14,11 +14,14 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <string>
+#include <cstring>
+
+using namespace std;
 
 char *optarg;
 int optind, opterr, optopt;
 
-char *usage =
+const char *usage =
 "Usage: adom-sage [OPTION]... -- [PARAMETERS TO ADOM]...\n\
   -a  --adom-path=PATH  Path to adom binary.\n\
   -d  --debug-level=x   Debug level (a number).\n\
@@ -29,7 +32,7 @@ char *usage =
   -v, --version         Display version info.\n\
   --                    End of options to Sage; further options are for ADOM";
 
-char *version =
+const char *version =
 "ADOM Sage version 0.9.1 - frontend for ADOM\n\
 ADOM is (C) Copyright 1994-2002 Thomas Biskup.\n\
 ADOM Sage is Copyright (c) 2002 Joshua Kelley.";
@@ -245,7 +248,7 @@ int main (int argc, char *argv[])
 		}
 
 		// Try to determine ADOM's version while we're at it
-		char *version;
+		const char *version;
 		switch(buf.st_size) {
 			case 2388548: version = "100"; break;
 			case 2556118: version = "110"; break;
diff -rupN adom-sage-0.9.1/spells.cc adom-sage-0.9.1-2009-05-12/spells.cc
--- adom-sage-0.9.1/spells.cc	2002-11-20 10:20:03.000000000 -0600
+++ adom-sage-0.9.1-2009-05-12/spells.cc	2009-05-12 11:38:41.135717701 -0500
@@ -321,7 +321,6 @@ int StateCastSpell::vsprintf(char *str, 
 	else if (strcmp(format, "\x01%s\x03\xC6%c - %s\x01\n") == 0) {
 
 		// Get arguments
-		char *padding = va_arg(ap_copy, char *);
 		char spell_letter = va_arg(ap_copy, int);
 		char *spell_details = va_arg(ap_copy, char*);
 
diff -rupN adom-sage-0.9.1/states.cc adom-sage-0.9.1-2009-05-12/states.cc
--- adom-sage-0.9.1/states.cc	2002-11-20 10:20:03.000000000 -0600
+++ adom-sage-0.9.1-2009-05-12/states.cc	2009-05-12 11:38:30.647719500 -0500
@@ -175,7 +175,7 @@ int StateWeaponStats::sprintf(char *str,
 
 int StateWeaponStats::vsprintf(char *str, const char *format, va_list ap)
 {
-	char *fraction_format = "\x03\xC6)/\x03\xCE%d";
+	const char *fraction_format = "\x03\xC6)/\x03\xCE%d";
 	if (strcmp(format, fraction_format) == 0) {
 		fraction = va_arg(ap, int);
 		return real_sprintf(str, format, fraction);
diff -rupN adom-sage-0.9.1/stl.h adom-sage-0.9.1-2009-05-12/stl.h
--- adom-sage-0.9.1/stl.h	2002-11-20 10:20:03.000000000 -0600
+++ adom-sage-0.9.1-2009-05-12/stl.h	2009-05-12 11:38:46.028732008 -0500
@@ -10,11 +10,14 @@
 
 #include <vector>
 #include <string>
-#include <hash_map>
+#include <ext/hash_map>
 #include <list>
 #include <map>
 #include <deque>
 
+using namespace std;
+using namespace __gnu_cxx;
+
 
 /*---------------------------------------------------------------------------
  * STL helpers - common
