diff --git a/test/scripts/stacktest.py b/test/scripts/stacktest.py
index e3a8abd..09b7257 100644
--- a/test/scripts/stacktest.py
+++ b/test/scripts/stacktest.py
@@ -13,7 +13,9 @@ class StackTest(unittest.TestCase):
 
     def testGetStack(self):
 
-        expectedStack = [ 'targetapp!stackTestRun2',
+        expectedStack = [
+                  'targetapp!stackTestClass::stackMethod',
+                  'targetapp!stackTestRun2',
                   'targetapp!stackTestRun1',
                   'targetapp!stackTestRun']
 
@@ -22,20 +24,35 @@ class StackTest(unittest.TestCase):
             moduleName, symbolName, disp = pykd.findSymbolAndDisp( frame.ip )
             realStack.append( "%s!%s" % ( moduleName, symbolName ) )
 
-        self.assertEqual( expectedStack, realStack[0:3])
+        self.assertEqual( expectedStack, realStack[0:4])
 
     def testGetParams(self):
-        expectedParams = ["a", "b", "c"]
-        self.assertEqual( expectedParams, [ name for name, param in pykd.getParams()]  )
-        self.assertEqual( 10, dict(pykd.getParams())["a"].deref() )
-        self.assertEqual( 10, pykd.getParam("a").deref() )
-         
-        self.assertEqual( 10, pykd.getStack()[1].params["a"] )
-        self.assertEqual( 10, pykd.getStack()[1].getParam("a") )
-        self.assertEqual( 10, dict( pykd.getStack()[1].getParams() )["a"] )
+
+        frame0 = pykd.getFrame()
+        self.assertEqual( ["this", "a", "b"], [ name for name, param in frame0.getParams() ] )
+
+
+        frame1 = pykd.getStack()[1]
+        self.assertEqual( ["a", "b", "c"], [ name for name, param in frame1.getParams() ] )
+        self.assertEqual( 10, frame1.getParam("a").deref() )
+        self.assertEqual( 10, frame1.params["a"].deref() )
+
+        frame2 = pykd.getStack()[2]
+        self.assertEqual( 10, frame2.params["a"] )
+        self.assertEqual( 10, frame2.getParam("a") )
 
     def testGetLocals(self):
         expectedLocals = ["localDouble", "localFloat", "localChars"]
-        self.assertEqual( expectedLocals, [name for name, param in pykd.getStack()[1].getLocals() ] )
-        self.assertEqual( 0.0, pykd.getStack()[1].locals["localDouble"] )
+        frame2 = pykd.getStack()[2]
+        self.assertEqual( expectedLocals, [name for name, param in frame2.getLocals() ] )
+        self.assertEqual( 0.0, frame2.locals["localDouble"] )
+
+    def testGetParamsNoSymbol(self):
+        topFrame = pykd.getStack()[-1]
+        self.assertEqual(0, len(topFrame.getParams()))
+
+    def testGetLocalsNoSymbol(self):
+        topFrame = pykd.getStack()[-1]
+        self.assertEqual(0, len(topFrame.getLocals()))
+