The one thing I love more then writing code is deleting code.
* Removed func_hash and func_compare, so they can be treated as immutable
  content-less objects (address hash and comparison)
* Added tests to that affect to test_funcattrs (also testing func_code
  is writable)
* Reverse meaning of tests in test_opcodes which checked identical code
  gets identical functions
diff --git a/Lib/test/test_funcattrs.py b/Lib/test/test_funcattrs.py
index 9c07a8f..0591ba6 100644
--- a/Lib/test/test_funcattrs.py
+++ b/Lib/test/test_funcattrs.py
@@ -154,3 +154,22 @@
 # This isn't specifically related to function attributes, but it does test a
 # core dump regression in funcobject.c
 del another.func_defaults
+
+def foo():
+	pass
+
+def bar():
+	pass
+
+def temp():
+	print 1
+
+if foo==bar: raise TestFailed
+
+d={}
+d[foo] = 1
+
+foo.func_code = temp.func_code
+
+d[foo]
+
diff --git a/Lib/test/test_opcodes.py b/Lib/test/test_opcodes.py
index 5381e4d..31569d5 100644
--- a/Lib/test/test_opcodes.py
+++ b/Lib/test/test_opcodes.py
@@ -50,12 +50,12 @@
 
 try: raise AClass, b
 except BClass, v:
-    if v != b: raise TestFailed
-else: raise TestFailed
+    if v != b: raise TestFailed, "v!=b"
+else: raise TestFailed, "no exception"
 
 try: raise b
 except AClass, v:
-    if v != b: raise TestFailed
+    if v != b: raise TestFailed, "v!=b AClass"
 
 # not enough arguments
 try:  raise BClass, a
@@ -64,21 +64,21 @@
 try:  raise DClass, a
 except DClass, v:
     if not isinstance(v, DClass):
-        raise TestFailed
+        raise TestFailed, "v not DClass"
 
 print '2.3 comparing function objects'
 
 f = eval('lambda: None')
 g = eval('lambda: None')
-if f != g: raise TestFailed
+if f == g: raise TestFailed, "functions should not be same"
 
 f = eval('lambda a: a')
 g = eval('lambda a: a')
-if f != g: raise TestFailed
+if f == g: raise TestFailed, "functions should not be same"
 
 f = eval('lambda a=1: a')
 g = eval('lambda a=1: a')
-if f != g: raise TestFailed
+if f == g: raise TestFailed, "functions should not be same"
 
 f = eval('lambda: 0')
 g = eval('lambda: 1')