PyFrameObject:  rename f_stackbottom to f_stacktop, since it points to
the next free valuestack slot, not to the base (in America, stacks push
and pop at the top -- they mutate at the bottom in Australia <winK>).
eval_frame():  assert that f_stacktop isn't NULL upon entry.
frame_delloc():  avoid ordered pointer comparisons involving f_stacktop
when f_stacktop is NULL.
diff --git a/Objects/frameobject.c b/Objects/frameobject.c
index c38c5fb..6af4e6e 100644
--- a/Objects/frameobject.c
+++ b/Objects/frameobject.c
@@ -78,9 +78,11 @@
 	}
 
 	/* Free stack */
-	for (p = f->f_valuestack; p < f->f_stackbottom; p++) {
-		Py_XDECREF(*p);
+	if (f->f_stacktop != NULL) {
+		for (p = f->f_valuestack; p < f->f_stacktop; p++)
+			Py_XDECREF(*p);
 	}
+	
 	Py_XDECREF(f->f_back);
 	Py_XDECREF(f->f_code);
 	Py_XDECREF(f->f_builtins);
@@ -226,7 +228,7 @@
 		f->f_localsplus[extras] = NULL;
 
 	f->f_valuestack = f->f_localsplus + (f->f_nlocals + ncells + nfrees);
-	f->f_stackbottom = f->f_valuestack;
+	f->f_stacktop = f->f_valuestack;
 
 	return f;
 }