diff --git a/docs/shell.rst b/docs/shell.rst
index 06e7f42..854944c 100644
--- a/docs/shell.rst
+++ b/docs/shell.rst
@@ -328,6 +328,11 @@
 
 If enabled, full python back-traces will be displayed in case of exceptions
 
+apdu_trace
+~~~~~~~~~~
+
+Boolean variable that determines if a hex-dump of the command + response APDU shall be printed.
+
 numeric_path
 ~~~~~~~~~~~~
 
diff --git a/pySim-shell.py b/pySim-shell.py
index 29138cc..ce1b3bf 100755
--- a/pySim-shell.py
+++ b/pySim-shell.py
@@ -37,7 +37,7 @@
 
 from pySim.exceptions import *
 from pySim.commands import SimCardCommands
-from pySim.transport import init_reader
+from pySim.transport import init_reader, ApduTracer
 from pySim.cards import card_detect, Card
 from pySim.utils import h2b, swap_nibbles, rpad, h2s
 from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex
@@ -74,6 +74,9 @@
 		self.update_prompt()
 		self.json_pretty_print = True
 		self.add_settable(cmd2.Settable('json_pretty_print', bool, 'Pretty-Print JSON output'))
+		self.apdu_trace = False
+		self.add_settable(cmd2.Settable('apdu_trace', bool, 'Trace and display APDUs exchanged with card',
+						  onchange_cb=self._onchange_apdu_trace))
 
 	def poutput_json(self, data, force_no_pretty = False):
 		"""line cmd2.putput() but for a json serializable dict."""
@@ -89,6 +92,20 @@
 	def _onchange_conserve_write(self, param_name, old, new):
 		self.rs.conserve_write = new
 
+	def _onchange_apdu_trace(self, param_name, old, new):
+		if new == True:
+			self.card._scc._tp.apdu_tracer = self.Cmd2ApduTracer(self)
+		else:
+			self.card._scc._tp.apdu_tracer = None
+
+	class Cmd2ApduTracer(ApduTracer):
+		def __init__(self, cmd2_app):
+			self.cmd2 = app
+
+		def trace_response(self, cmd, sw, resp):
+			self.cmd2.poutput("-> %s %s" % (cmd[:10], cmd[10:]))
+			self.cmd2.poutput("<- %s: %s" % (sw, resp))
+
 	def update_prompt(self):
 		path_list = self.rs.selected_file.fully_qualified_path(not self.numeric_path)
 		self.prompt = 'pySIM-shell (%s)> ' % ('/'.join(path_list))
diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py
index c176f8a..96ad974 100644
--- a/pySim/transport/__init__.py
+++ b/pySim/transport/__init__.py
@@ -25,11 +25,20 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+class ApduTracer:
+	def trace_command(self, cmd):
+		pass
+
+	def trace_response(self, cmd, sw, resp):
+		pass
+
+
 class LinkBase(object):
 	"""Base class for link/transport to card."""
 
-	def __init__(self, sw_interpreter=None):
+	def __init__(self, sw_interpreter=None, apdu_tracer=None):
 		self.sw_interpreter = sw_interpreter
+		self.apdu_tracer = apdu_tracer
 
 	def set_sw_interpreter(self, interp):
 		"""Set an (optional) status word interpreter."""
@@ -69,7 +78,12 @@
 				data : string (in hex) of returned data (ex. "074F4EFFFF")
 				sw   : string (in hex) of status word (ex. "9000")
 		"""
-		return self._send_apdu_raw(pdu)
+		if self.apdu_tracer:
+			self.apdu_tracer.trace_command(pdu)
+		(data, sw) = self._send_apdu_raw(pdu)
+		if self.apdu_tracer:
+			self.apdu_tracer.trace_response(pdu, sw, data)
+		return (data, sw)
 
 	def send_apdu(self, pdu):
 		"""Sends an APDU and auto fetch response data
