diff --git a/NEWS b/NEWS
index d9a1eca..84e6e7d 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@
 --------------------------------------------------------------------------------
 - Fixed <Tcl>...</Tcl>, these should be placed outside of <Directory>/<Location> directives.  Everything in <Tcl>...</Tcl> is added to a global variable and then made local to the namespace of the file, this is due to several problems with handling configuration, mainly that exection would either result in a "this directive doesn't belong here" or a problem with the configuration not being built yet as in an EXEC_ON_READ.
 - Fixed a bug in ap_create_environment.
+- Fixed a bug with writing <Tcl>...</Tcl> logic to the local namespace [2001032300]
 
 Changes in 1.0d6
 --------------------------------------------------------------------------------
@@ -27,6 +28,7 @@
 6. libapreq (doesn't appear to be ported to 2.0 completley yet...)
 7. Decide what goals need to be acheived for release 1.0
 8. Make necessary changes along with Apache 2.0 revisions.
+9. Look into TCL threads.  A preliminary investigation to enabling TCL threads caused SEGVs randomly...?
 
 Map
 --------------------------------------------------------------------------------
@@ -40,7 +42,7 @@
          |
 - 1.0d3 -| more of API exposed, new config option, inital checkin to CVS
          |
-- 1.0d4 -| Documentation, 99% of API exposed
+- 1.0d4 -| Documentation, 90% of API exposed
          |
 - 1.0d5 -| constants commands in ::apache namespace, mmap checking, test
          | script
diff --git a/README b/README
index 6a532c0..060af4d 100644
--- a/README
+++ b/README
@@ -2,7 +2,8 @@
 -----------------------------------
 
 This documentation referes to mod_tcl 1.0d7.
-Please see tcl.apache.org and www.fractal.net for more information.
+Please see tcl.apache.org for more information.
+
 
 Configuration Directives
 ------------------------
diff --git a/tcl_core.c b/tcl_core.c
index adb6a27..a734b12 100644
--- a/tcl_core.c
+++ b/tcl_core.c
@@ -236,6 +236,11 @@
 {
 	char **xx, *z = apr_pstrdup(cmd->pool, "");
 	char l[MAX_STRING_LEN];
+	const char *err = ap_check_cmd_context(cmd, NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
+
+	if (err != NULL) {
+		return err;
+	}
     
     while (!(ap_cfg_getline(l, MAX_STRING_LEN, cmd->config_file))) {
 		if (!strncasecmp(l, "</Tcl>", 6)) {
@@ -544,12 +549,14 @@
 		interp = NULL;
 	}
 	
+	free(raw_tcl);
+	
 	return APR_SUCCESS;
 }
 
 static void tcl_init_handler(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s)
 {
-	ap_add_version_component(pconf, "mod_tcl/1.0dPRE7-2001032000");
+	ap_add_version_component(pconf, "mod_tcl/1.0dPRE7-2001032300");
 }
 
 static int run_handler(request_rec *r, int hh)
@@ -646,7 +653,9 @@
 			}
 		}
 		
-		run_script(interp, "namespace eval %s { %s }", r->filename, raw_tcl);
+		if (raw_tcl) {
+			run_script(interp, "namespace eval %s { %s }", r->filename, raw_tcl);
+		}
 	}
 	else if (st.st_mtime > fptr->st.st_mtime) {
 		int fd;
