diff --git a/Lib/idlelib/Debugger.py b/Lib/idlelib/Debugger.py
index a483168..f5646e0 100644
--- a/Lib/idlelib/Debugger.py
+++ b/Lib/idlelib/Debugger.py
@@ -52,7 +52,7 @@
 
 class Debugger:
 
-    interacting = 0
+    # interacting = 0  # XXX KBK 14Jun02 move to __init__
     vstack = vsource = vlocals = vglobals = None
 
     def __init__(self, pyshell, idb=None):
@@ -60,8 +60,10 @@
             idb = Idb(self)
         self.pyshell = pyshell
         self.idb = idb
+        self.frame = None
         self.make_gui()
-
+        self.interacting = 0
+        
     def run(self, *args):
         try:
             self.interacting = 1
@@ -155,7 +157,7 @@
         if self.vglobals.get():
             self.show_globals()
 
-    frame = None
+    # frame = None  # XXX KBK 14Jun02  Move to __init__
 
     def interaction(self, message, frame, info=None):
         self.frame = frame
@@ -300,10 +302,11 @@
             gdict = frame.f_globals
             if lv and gv and ldict is gdict:
                 ldict = None
+        # Calls OldStackviewer.NamespaceViewer.load_dict():
         if lv:
-            lv.load_dict(ldict, force)
+            lv.load_dict(ldict, force, self.pyshell.interp.rpcclt)
         if gv:
-            gv.load_dict(gdict, force)
+            gv.load_dict(gdict, force, self.pyshell.interp.rpcclt)
 
     def set_breakpoint_here(self, edit):
         text = edit.text
@@ -312,7 +315,7 @@
             text.bell()
             return
         lineno = int(float(text.index("insert")))
-        msg = self.set_break(filename, lineno)
+        msg = self.idb.set_break(filename, lineno)
         if msg:
             text.bell()
             return
diff --git a/Lib/idlelib/OldStackViewer.py b/Lib/idlelib/OldStackViewer.py
index 2fa4127..c3df5ff 100644
--- a/Lib/idlelib/OldStackViewer.py
+++ b/Lib/idlelib/OldStackViewer.py
@@ -232,7 +232,7 @@
 
     dict = -1
 
-    def load_dict(self, dict, force=0):
+    def load_dict(self, dict, force=0, rpc_client=None):
         if dict is self.dict and not force:
             return
         subframe = self.subframe
@@ -250,6 +250,10 @@
             for name in names:
                 value = dict[name]
                 svalue = self.repr.repr(value) # repr(value)
+                # Strip extra quotes caused by calling repr on the (already)
+                # repr'd value sent across the RPC interface:
+                if rpc_client:
+                    svalue = svalue[1:-1]
                 l = Label(subframe, text=name)
                 l.grid(row=row, column=0, sticky="nw")
     ##            l = Label(subframe, text=svalue, justify="l", wraplength=300)
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index d335c7e..d84e2e1 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -529,6 +529,9 @@
         self.set_debugger_indicator()
 
     def open_debugger(self):
+        # XXX KBK 13Jun02 An RPC client always exists now? Open remote
+        # debugger and return...dike the rest of this fcn and combine
+        # with open_remote_debugger?
         if self.interp.rpcclt:
             return self.open_remote_debugger()
         import Debugger
diff --git a/Lib/idlelib/RemoteDebugger.py b/Lib/idlelib/RemoteDebugger.py
index 0f8eac5..5131065 100644
--- a/Lib/idlelib/RemoteDebugger.py
+++ b/Lib/idlelib/RemoteDebugger.py
@@ -24,6 +24,8 @@
 import rpc
 import Debugger
 
+debugging = 0
+
 # In the PYTHON subprocess
 
 frametable = {}
@@ -43,9 +45,9 @@
 
 class GUIProxy:
 
-    def __init__(self, conn, oid):
+    def __init__(self, conn, gui_adap_oid):
         self.conn = conn
-        self.oid = oid
+        self.oid = gui_adap_oid
 
     def interaction(self, message, frame, info=None):
         self.conn.remotecall(self.oid, "interaction",
@@ -128,24 +130,25 @@
     def dict_item(self, did, key):
         dict = dicttable[did]
         value = dict[key]
-        try:
-            # Test for picklability
-            import cPickle
-            cPickle.dumps(value)
-        except:
-            value = None
+        value = repr(value)
+#          try:
+#              # Test for picklability
+#              import cPickle
+#              pklstr = cPickle.dumps(value)
+#          except:
+#              print >>sys.__stderr__, "** dict_item pickle failed: ", value
+#              raise    
+#              #value = None
         return value
 
-def start_debugger(conn, gui_oid):
-    #
-    # launched in the python subprocess
-    #
-    gui = GUIProxy(conn, gui_oid)
-    idb = Debugger.Idb(gui)
-    ada = IdbAdapter(idb)
-    ada_oid = "idb_adapter"
-    conn.register(ada_oid, ada)
-    return ada_oid
+def start_debugger(conn, gui_adap_oid):
+    "Launch debugger in the remote python subprocess"
+    gui_proxy = GUIProxy(conn, gui_adap_oid)
+    idb = Debugger.Idb(gui_proxy)
+    idb_adap = IdbAdapter(idb)
+    idb_adap_oid = "idb_adapter"
+    conn.register(idb_adap_oid, idb_adap)
+    return idb_adap_oid
 
 # In the IDLE process
 
@@ -223,14 +226,14 @@
         ##print >>sys.__stderr__, "failed DictProxy.__getattr__:", name
         raise AttributeError, name
 
-class GUIAdaper:
+class GUIAdapter:
 
     def __init__(self, conn, gui):
         self.conn = conn
         self.gui = gui
 
     def interaction(self, message, fid, iid):
-        print "interaction(%s, %s, %s)" % (`message`, `fid`, `iid`)
+        ##print "interaction: (%s, %s, %s)" % (`message`,`fid`, `iid`)
         frame = FrameProxy(self.conn, fid)
         info = None # XXX for now
         self.gui.interaction(message, frame, info)
@@ -272,16 +275,23 @@
         self.call("set_quit")
 
 def start_remote_debugger(conn, pyshell):
-    #
-    # instruct the (remote) subprocess to create
-    # a debugger instance, and lets it know that 
-    # the local GUIAdapter called "gui_adapter"
-    # is waiting notification of debugging events
-    #
-    ada_oid = "gui_adapter"
-    idb_oid = conn.remotecall("exec", "start_debugger", (ada_oid,), {})
-    idb = IdbProxy(conn, idb_oid)
-    gui = Debugger.Debugger(pyshell, idb)
-    ada = GUIAdaper(conn, gui)
-    conn.register(ada_oid, ada)
+    """Start the subprocess debugger, initialize the debugger GUI and RPC link
+
+    Start the debugger in the remote Python process.  Instantiate IdbProxy,
+    Debugger GUI, and Debugger GUIAdapter objects, and link them together.
+
+    The GUIAdapter will handle debugger GUI interaction requests coming from
+    the subprocess debugger via the GUIProxy.
+
+    The IdbAdapter will pass execution and environment requests coming from the
+    Idle debugger GUI to the subprocess debugger via the IdbProxy.
+
+    """
+    gui_adap_oid = "gui_adapter"
+    idb_adap_oid = conn.remotecall("exec", "start_the_debugger",\
+                                   (gui_adap_oid,), {})
+    idb_proxy = IdbProxy(conn, idb_adap_oid)
+    gui = Debugger.Debugger(pyshell, idb_proxy)
+    gui_adap = GUIAdapter(conn, gui)
+    conn.register(gui_adap_oid, gui_adap)
     return gui
diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py
index a4d2705..35a2678 100644
--- a/Lib/idlelib/rpc.py
+++ b/Lib/idlelib/rpc.py
@@ -119,7 +119,7 @@
             pass
 
     def localcall(self, request):
-        ##self.debug("localcall:", request) 
+        self.debug("localcall:", request) 
         try:
             how, (oid, methodname, args, kwargs) = request
         except TypeError:
@@ -165,6 +165,7 @@
             return ("EXCEPTION", (mod, name, args, tb))
 
     def remotecall(self, oid, methodname, args, kwargs):
+        self.debug("remotecall:", oid, methodname, args, kwargs) 
         seq = self.asynccall(oid, methodname, args, kwargs)
         return self.asyncreturn(seq)
 
@@ -197,10 +198,12 @@
                         pass
                     else:
                         raise getattr(__import__(mod), name)(*args)
-            else:
-                if mod:
-                    name = mod + "." + name
-                raise name, args
+# XXX KBK 15Jun02  mod is False here, also want to raise remaining exceptions
+#           else:
+#               if mod:
+#                   name = mod + "." + name
+#               raise name, args
+            raise name, args
         if how == "ERROR":
             raise RuntimeError, what
         raise SystemError, (how, what)
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index 1b84d4d..cfb318c 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -30,9 +30,9 @@
     def runcode(self, code):
         exec code in self.locals
 
-    def start_debugger(self, gui_oid):
+    def start_the_debugger(self, gui_adap_oid):
         import RemoteDebugger
-        return RemoteDebugger.start_debugger(self.conn, gui_oid)
+        return RemoteDebugger.start_debugger(self.conn, gui_adap_oid)
 
     def stackviewer(self, flist_oid=None):
         if not hasattr(sys, "last_traceback"):
