Index: functions.c
===================================================================
--- functions.c	(revision 1763)
+++ functions.c	(working copy)
@@ -835,13 +835,13 @@
 
 void
 do_base(enum base_type b)    /* Change the current base setting. */
-{
-    v->base = b;
-    put_resource(R_BASE, Rbstr[(int) v->base]);
-    grey_buttons(v->base);
-    
+{    
     switch (v->syntax) {
     case npa:
+        v->base = b;
+        put_resource(R_BASE, Rbstr[(int) v->base]);
+        grey_buttons(v->base);
+
 	v->pending = 0;
 	if (v->rstate) {
 	    make_registers();
@@ -858,8 +858,11 @@
 	} else if (!v->ghost_zero) {
 	    mpstr(MP, e->ans);
 	    exp_replace("Ans");
-	    make_registers();
 	}
+        v->base = b;
+        put_resource(R_BASE, Rbstr[(int) v->base]);
+        grey_buttons(v->base);
+        make_registers();
 	clear_undo_history();
     }
     break;
@@ -871,6 +874,8 @@
     refresh_display();
 }
 
+
+
 static void
 do_constant()
 {
