Index: cmd.c
===================================================================
--- cmd.c	(revision 3f8514b91ca8967e8c5d8c5a7be6d441b254bdce)
+++ cmd.c	(revision 0a0fb74b83a9ed9c98ab0492bb484850c478d38b)
@@ -5,5 +5,5 @@
 #include "owl.h"
 
-extern owl_cmd commands_to_init[];
+extern const owl_cmd commands_to_init[];
 
 /**************************************************************************/
@@ -23,6 +23,6 @@
 
 /* for bulk initialization at startup */
-int owl_cmddict_add_from_list(owl_cmddict *cd, owl_cmd *cmds) {
-  owl_cmd *cur;
+int owl_cmddict_add_from_list(owl_cmddict *cd, const owl_cmd *cmds) {
+  const owl_cmd *cur;
   int ret = 0;
   for (cur = cmds; cur->name != NULL; cur++) {
@@ -38,5 +38,5 @@
 }
 
-owl_cmd *owl_cmddict_find(const owl_cmddict *d, const char *name) {
+const owl_cmd *owl_cmddict_find(const owl_cmddict *d, const char *name) {
   return owl_dict_find_element(d, name);
 }
@@ -55,5 +55,5 @@
 }
 
-int owl_cmddict_add_cmd(owl_cmddict *cd, owl_cmd * cmd) {
+int owl_cmddict_add_cmd(owl_cmddict *cd, const owl_cmd * cmd) {
   owl_cmd * newcmd = owl_malloc(sizeof(owl_cmd));
   if(owl_cmd_create_from_template(newcmd, cmd) < 0) {
@@ -67,5 +67,5 @@
 char *_owl_cmddict_execute(const owl_cmddict *cd, const owl_context *ctx, const char *const *argv, int argc, const char *buff) {
   char *retval = NULL;
-  owl_cmd *cmd;
+  const owl_cmd *cmd;
 
   if (!strcmp(argv[0], "")) {
@@ -132,5 +132,5 @@
 
 /* sets up a new command based on a template, copying strings */
-int owl_cmd_create_from_template(owl_cmd *cmd, owl_cmd *templ) {
+int owl_cmd_create_from_template(owl_cmd *cmd, const owl_cmd *templ) {
   *cmd = *templ;
   if (!templ->name) return(-1);
@@ -162,10 +162,10 @@
 }
 
-int owl_cmd_is_context_valid(owl_cmd *cmd, const owl_context *ctx) { 
+int owl_cmd_is_context_valid(const owl_cmd *cmd, const owl_context *ctx) { 
   if (owl_context_matches(ctx, cmd->validctx)) return 1;
   else return 0;
 }
 
-char *owl_cmd_execute(owl_cmd *cmd, const owl_cmddict *cd, const owl_context *ctx, int argc, const char *const *argv, const char *cmdbuff) {
+char *owl_cmd_execute(const owl_cmd *cmd, const owl_cmddict *cd, const owl_context *ctx, int argc, const char *const *argv, const char *cmdbuff) {
   static int alias_recurse_depth = 0;
   int ival=0;
@@ -238,10 +238,10 @@
 
 /* returns a reference */
-const char *owl_cmd_get_summary(owl_cmd *cmd) {
+const char *owl_cmd_get_summary(const owl_cmd *cmd) {
   return cmd->summary;
 }
 
 /* returns a summary line describing this keymap.  the caller must free. */
-char *owl_cmd_describe(owl_cmd *cmd) {
+char *owl_cmd_describe(const owl_cmd *cmd) {
   char *s;
   int slen;
Index: commands.c
===================================================================
--- commands.c	(revision e19eb97bacd75cf02905ec2b7a6a73b9642b907a)
+++ commands.c	(revision 0a0fb74b83a9ed9c98ab0492bb484850c478d38b)
@@ -40,5 +40,5 @@
 
 
-owl_cmd commands_to_init[]
+const owl_cmd commands_to_init[]
   = {
   OWLCMD_ARGS("zlog", owl_command_zlog, OWL_CTX_ANY,
Index: functions.c
===================================================================
--- functions.c	(revision 77bced3ebcc3a797dc45daf2049e2a8c6a9bf900)
+++ functions.c	(revision 0a0fb74b83a9ed9c98ab0492bb484850c478d38b)
@@ -39,5 +39,5 @@
 }
 
-owl_cmd *owl_function_get_cmd(const char *name)
+const owl_cmd *owl_function_get_cmd(const char *name)
 {
   return owl_cmddict_find(owl_global_get_cmddict(&g), name);
@@ -110,5 +110,5 @@
 char *owl_function_cmd_describe(const char *name)
 {
-  owl_cmd *cmd = owl_cmddict_find(owl_global_get_cmddict(&g), name);
+  const owl_cmd *cmd = owl_cmddict_find(owl_global_get_cmddict(&g), name);
   if (cmd) return owl_cmd_describe(cmd);
   else return(NULL);
Index: keymap.c
===================================================================
--- keymap.c	(revision e19eb97bacd75cf02905ec2b7a6a73b9642b907a)
+++ keymap.c	(revision 0a0fb74b83a9ed9c98ab0492bb484850c478d38b)
@@ -102,5 +102,5 @@
   for (i=0; i<nbindings; i++) {
     char buff[100];
-    owl_cmd *cmd;
+    const owl_cmd *cmd;
     const char *tmpdesc, *desc = "";
 
Index: perlconfig.c
===================================================================
--- perlconfig.c	(revision e19eb97bacd75cf02905ec2b7a6a73b9642b907a)
+++ perlconfig.c	(revision 0a0fb74b83a9ed9c98ab0492bb484850c478d38b)
@@ -452,5 +452,5 @@
 }
 
-char *owl_perlconfig_perlcmd(owl_cmd *cmd, int argc, const char *const *argv)
+char *owl_perlconfig_perlcmd(const owl_cmd *cmd, int argc, const char *const *argv)
 {
   int i, count;
