diff --git a/Lib/test/test_set.py b/Lib/test/test_set.py
index c33461d..3203d51 100644
--- a/Lib/test/test_set.py
+++ b/Lib/test/test_set.py
@@ -35,6 +35,8 @@
         for c in self.letters:
             self.assertEqual(c in self.s, c in self.d)
         self.assertRaises(TypeError, self.s.__contains__, [[]])
+        s = self.thetype([frozenset(self.letters)])
+        self.assert_(self.thetype(self.letters) in s)
 
     def test_copy(self):
         dup = self.s.copy()
diff --git a/Objects/setobject.c b/Objects/setobject.c
index 88d5640..2d77c74 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -104,7 +104,23 @@
 static int
 set_contains(PySetObject *so, PyObject *key)
 {
-	return PySequence_Contains(so->data, key);
+	PyObject *olddict;
+	PySetObject *tmp;
+	int result;
+
+	result = PySequence_Contains(so->data, key);
+	if (result == -1 && PyType_IsSubtype(key->ob_type, &PySet_Type)) {
+		PyErr_Clear();
+		tmp = (PySetObject *)make_new_set(&PyFrozenSet_Type, NULL);
+		if (tmp == NULL)
+			return -1;
+		olddict = tmp->data;
+		tmp->data = ((PySetObject *)(key))->data;
+		result = PySequence_Contains(so->data, (PyObject *)tmp);
+		tmp->data = olddict;
+		Py_DECREF(tmp);
+	}
+	return result;
 }
 
 static PyObject *
