diff --git a/scapy/automaton.py b/scapy/automaton.py
index 072da9e1d495d6417291d71a1ed6b5d245210331..62ce75238ee6bbf9fe4e472460366c35694d9b6c 100644
--- a/scapy/automaton.py
+++ b/scapy/automaton.py
@@ -13,6 +13,7 @@ from utils import do_graph
 from error import log_interactive
 from plist import PacketList
 from data import MTU
+from supersocket import SuperSocket
 
 class ObjectPipe:
     def __init__(self):
@@ -171,7 +172,7 @@ class _ATMT_Command:
     REPLACE = "REPLACE"
     REJECT = "REJECT"
 
-class _ATMT_supersocket:
+class _ATMT_supersocket(SuperSocket):
     def __init__(self, name, ioevent, automaton, proto, args, kargs):
         self.name = name
         self.ioevent = ioevent
@@ -191,7 +192,16 @@ class _ATMT_supersocket:
         if self.proto is not None:
             r = self.proto(r)
         return r
-
+    def close(self):
+        pass
+    def sr(self, *args, **kargs):
+        return sndrcv(self, *args, **kargs)
+    def sr1(self, *args, **kargs):        
+        a,b = sndrcv(self, *args, **kargs)
+        if len(a) > 0:
+            return a[0][1]
+        else:
+            return None
 
 class _ATMT_to_supersocket:
     def __init__(self, name, ioevent, automaton):
diff --git a/scapy/supersocket.py b/scapy/supersocket.py
index e3e49c0613669b5aa3b795add9a9c9c42ea56012..10a32de951d4f2742e1736ade3e26544cc24a6ca 100644
--- a/scapy/supersocket.py
+++ b/scapy/supersocket.py
@@ -40,10 +40,14 @@ class SuperSocket:
                 self.outs.close()
         if self.ins and self.ins.fileno() != -1:
             self.ins.close()
-    def bind_in(self, addr):
-        self.ins.bind(addr)
-    def bind_out(self, addr):
-        self.outs.bind(addr)
+    def sr(self, *args, **kargs):
+        return sndrcv(self, *args, **kargs)
+    def sr1(self, *args, **kargs):        
+        a,b = sndrcv(self, *args, **kargs)
+        if len(a) > 0:
+            return a[0][1]
+        else:
+            return None
 
 class L3RawSocket(SuperSocket):
     desc = "Layer 3 using Raw sockets (PF_INET/SOCK_RAW)"