diff --git a/Lib/decimal.py b/Lib/decimal.py
index 88fa031..9cc9c0f 100644
--- a/Lib/decimal.py
+++ b/Lib/decimal.py
@@ -2054,17 +2054,6 @@
         except TypeError:
             return 0
 
-    #properties to immutability-near feature
-    def _get_sign(self):
-        return self._sign
-    def _get_int(self):
-        return self._int
-    def _get_exp(self):
-        return self._exp
-    sign = property(_get_sign)
-    int = property(_get_int)
-    exp = property(_get_exp)
-
     # support for pickling, copy, and deepcopy
     def __reduce__(self):
         return (self.__class__, (str(self),))
@@ -2120,8 +2109,10 @@
                  _ignored_flags=[]):
         if not isinstance(flags, dict):
             flags = dict([(s,s in flags) for s in _signals])
+            del s
         if traps is not None and not isinstance(traps, dict):
             traps = dict([(s,s in traps) for s in _signals])
+            del s
         for name, val in locals().items():
             if val is None:
                 setattr(self, name, copy.copy(getattr(DefaultContext, name)))
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 2415a78..0a23808 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -954,34 +954,6 @@
         d = Decimal("Infinity")
         self.assertEqual(d.as_tuple(), (0, (0,), 'F') )
 
-    def test_immutability_onpurpose(self):
-        #Try to change internal objects and see if immutable.
-
-        d = Decimal(42)
-
-        #you can get the attributes...
-        d.exp
-        d.int
-        d.sign
-
-        #...but not change them!
-        try:
-            d.exp = 20
-            d.int = 3
-            d.sign = 1
-        except AttributeError:
-            pass
-        else:
-            self.fail('Did not raised an error!')
-
-        #some new attribute
-        try:
-            d.newone = None
-        except AttributeError:
-            pass
-        else:
-            self.fail('Did not raised an error!')
-
     def test_immutability_operations(self):
         # Do operations and check that it didn't change change internal objects.
 
