diff --git a/claripy/expression.py b/claripy/expression.py
index <HASH>..<HASH> 100644
--- a/claripy/expression.py
+++ b/claripy/expression.py
@@ -11,6 +11,8 @@ class A(object):
     An A(ST) tracks a tree of operations on arguments.
     '''
 
+    __slots__ = [ '_op', '_args', '_hash', '__weakref__' ]
+
     def __init__(self, op, args):
         self._op = op
         self._args = args
@@ -39,6 +41,12 @@ class A(object):
             self._hash = hash((self._op,) + tuple(self._args))
         return self._hash
 
+    def __getstate__(self):
+        return self._op, self._args
+    def __setstate__(self, state):
+        self._hash = None
+        self._op, self._args = state
+
 class E(Storable):
     '''
     A class to wrap expressions.
made claripy.A use slots