Index: yahtzee.c
===================================================================
--- yahtzee.c	(revision 6897)
+++ yahtzee.c	(working copy)
@@ -711,13 +711,23 @@
   return winner;
 }
 
-int UndoPossible(void)
+/* Undo is possible when the Undo List isn't NULL */
+int
+UndoPossible(void)
 {
     return UndoList != NULL;
 }
 
-int RedoPossible(void)
+/* Undo option should be visible only when the player is human */
+int
+UndoVisible(void)
 {
+    return UndoPossible() && !players[CurrentPlayer].comp;
+}
+
+int
+RedoPossible(void)
+{
     return RedoList != NULL;
 }
 
Index: yahtzee.h
===================================================================
--- yahtzee.h	(revision 6897)
+++ yahtzee.h	(working copy)
@@ -117,6 +117,7 @@
 void FreeUndoRedoLists(void);
 void FreeRedoListHead(void);
 extern int  UndoPossible(void);
+extern int  UndoVisible(void);
 extern int  RedoPossible(void);
 extern void ResetDiceState(UndoScoreElement *elem);
 extern void RestoreLastRoll(void);
Index: gyahtzee.c
===================================================================
--- gyahtzee.c	(revision 6897)
+++ gyahtzee.c	(working copy)
@@ -685,7 +685,7 @@
 
 void update_undo_sensitivity(void)
 {
-    gtk_action_set_sensitive(undo_action, UndoPossible());
+    gtk_action_set_sensitive(undo_action, UndoVisible());
 }
 
 static void
