diff --git a/scapy/asn1fields.py b/scapy/asn1fields.py
index 0b84c6a9357af2fe0df1ba12643077e8d2593057..242fb8ec093f0563b1dbb16e07ef5146f2352e38 100644
--- a/scapy/asn1fields.py
+++ b/scapy/asn1fields.py
@@ -35,8 +35,7 @@ class ASN1F_field(ASN1F_element):
     
     def __init__(self, name, default, context=None,
                  implicit_tag=None, explicit_tag=None):
-        if context is not None:
-            self.context = context
+        self.context = context
         self.name = name
         if default is None:
             self.default = None
@@ -371,21 +370,17 @@ class ASN1F_optional(ASN1F_element):
     def __init__(self, field, by_default=False):
         field.flexible_tag = False
         self._field = field
-        self.default = field.default
-        self.name = field.name
-        self.islist = field.islist
-        self.holds_packets = field.holds_packets
     def __getattr__(self, attr):
         return getattr(self._field, attr)
     def m2i(self, pkt, s):
         try:
             return self._field.m2i(pkt, s)
-        except (ASN1_Error, ASN1F_badsequence, BER_Decoding_Error):
+        except (ASN1F_badsequence, BER_Decoding_Error):
             return None, s
     def dissect(self, pkt, s):
         try:
             return self._field.dissect(pkt, s)
-        except (ASN1_Error, ASN1F_badsequence, BER_Decoding_Error):
+        except (ASN1F_badsequence, BER_Decoding_Error):
             self._field.set_val(pkt, None)
             return s
     def build(self, pkt):