1.7では問題ないのですが、1.6だけ、
凍結したオブジェクトに対してuntaintを行うことができます。
CVSWebから過去のソースを見ると、既に修正してあったのに、
どこかの時点で、変更が消えてしまったようです。

a = Object.new
a.taint
a.freeze
a.untaint

1.7と同じにするだけなので、
パッチを送る必要はないのですが、もしも役に立てば。

	* object.c (rb_obj_taint): backport from 1.7.
	* object.c (rb_obj_untaint): add frozen status check (backport from 1.7).

--- object.c.orig	Tue Apr 24 15:44:13 2001
+++ object.c	Wed May 30 14:09:00 2001
@@ -286,10 +286,12 @@
     VALUE obj;
 {
     rb_secure(4);
-    if (OBJ_FROZEN(obj)) {
-	rb_error_frozen("object");
+    if (!OBJ_TAINTED(obj)) {
+	if (OBJ_FROZEN(obj)) {
+	    rb_error_frozen("object");
+	}
+	OBJ_TAINT(obj);
     }
-    OBJ_TAINT(obj);
     return obj;
 }
 
@@ -298,7 +300,12 @@
     VALUE obj;
 {
     rb_secure(3);
-    FL_UNSET(obj, FL_TAINT);
+    if (OBJ_TAINTED(obj)) {
+	if (OBJ_FROZEN(obj)) {
+	    rb_error_frozen("object");
+	}
+	FL_UNSET(obj, FL_TAINT);
+    }
     return obj;
 }
 
----
小迫@ソフネック   渋谷区恵比寿1-15-1