diff --git a/elftools/dwarf/callframe.py b/elftools/dwarf/callframe.py
index 09f80d4..3f6b735 100644
--- a/elftools/dwarf/callframe.py
+++ b/elftools/dwarf/callframe.py
@@ -212,7 +212,7 @@
                 args = [struct_parse(
                     structs.Dwarf_dw_form['DW_FORM_block'], self.stream)]
             elif opcode in (DW_CFA_expression, DW_CFA_val_expression):
-                arsg = [
+                args = [
                     struct_parse(structs.Dwarf_uleb128(''), self.stream),
                     struct_parse(
                         structs.Dwarf_dw_form['DW_FORM_block'], self.stream)]
diff --git a/elftools/dwarf/descriptions.py b/elftools/dwarf/descriptions.py
index 91037d3..0a45065 100644
--- a/elftools/dwarf/descriptions.py
+++ b/elftools/dwarf/descriptions.py
@@ -94,13 +94,13 @@
             s += '  %s: %s\n' % (name, instr.args[0])
         elif name == 'DW_CFA_def_cfa_expression':
             expr_dumper = ExprDumper(entry.structs)
-            expr_str = dumper.process_expr(instr.args[0])
-            s += '  %s: (%s)\n' % (name, expr_str)
+            expr_dumper.process_expr(instr.args[0])
+            s += '  %s: (%s)\n' % (name, expr_dumper.get_str())
         elif name == 'DW_CFA_expression':
             expr_dumper = ExprDumper(entry.structs)
-            expr_str = dumper.process_expr(instr.args[1])
+            expr_dumper.process_expr(instr.args[1])
             s += '  %s: %s (%s)\n' % (
-                name, _full_reg_name(instr.args[0]), expr_str)
+                name, _full_reg_name(instr.args[0]), expr_dumper.get_str())
         else:
             s += '  %s: <??>\n' % name
 
diff --git a/tests/test_callframe.py b/tests/test_callframe.py
index 839b118..5f7b00c 100644
--- a/tests/test_callframe.py
+++ b/tests/test_callframe.py
@@ -5,6 +5,8 @@
 from elftools.dwarf.callframe import (
     CallFrameInfo, CIE, FDE, instruction_name, CallFrameInstruction)
 from elftools.dwarf.structs import DWARFStructs
+from elftools.dwarf.descriptions import (describe_CFI_instructions,
+    set_global_machine_arch)
 
 
 class TestCallFrame(unittest.TestCase):
@@ -12,7 +14,7 @@
         self.assertIsInstance(instr, CallFrameInstruction)
         self.assertEqual(instruction_name(instr.opcode), name)
         self.assertEqual(instr.args, args)
-        
+       
     def test_spec_sample_d6(self):
         # D.6 sample in DWARFv3
         s = StringIO()
@@ -88,6 +90,27 @@
         self.assertInstruction(entries[1].instructions[20],
             'DW_CFA_nop', [])
 
+    def test_describe_CFI_instructions(self):
+        # The data here represents a single CIE 
+        data = ('' +
+            '\x16\x00\x00\x00' +        # length
+            '\xff\xff\xff\xff' +        # CIE_id
+            '\x03\x00\x04\x7c' +        # version, augmentation, caf, daf
+            '\x08' +                    # return address
+            '\x0c\x07\x02' +
+            '\x10\x02\x07\x03\x01\x02\x00\x00\x06\x06')
+        s = StringIO(data)
+
+        structs = DWARFStructs(little_endian=True, dwarf_format=32, address_size=4)
+        cfi = CallFrameInfo(s, len(data), structs)
+        entries = cfi.get_entries()
+
+        set_global_machine_arch('x86')
+        self.assertEqual(describe_CFI_instructions(entries[0]),
+            (   '  DW_CFA_def_cfa: r7 (edi) ofs 2\n' + 
+                '  DW_CFA_expression: r2 (edx) (DW_OP_addr: 201; DW_OP_deref; DW_OP_deref)\n'))
+
+
 if __name__ == '__main__':
     unittest.main()
 
