diff -u -r angband.org/src/cmd3.c angband/src/cmd3.c
--- angband.org/src/cmd3.c	Tue Jul 25 20:57:48 2000
+++ angband/src/cmd3.c	Fri Sep 15 22:18:52 2000
@@ -440,23 +440,26 @@
 	/* Artifacts cannot be destroyed */
 	if (artifact_p(o_ptr))
 	{
-		int feel = INSCRIP_SPECIAL;
-
 		/* Message */
 		msg_format("You cannot destroy %s.", o_name);
 
-		/* Hack -- Handle icky artifacts */
-		if (cursed_p(o_ptr) || broken_p(o_ptr)) feel = INSCRIP_TERRIBLE;
-
-		/* Remove special inscription, if any */
-		if (o_ptr->discount >= INSCRIP_NULL) o_ptr->discount = 0;
-
-		/* Sense the object if allowed, don't sense ID'ed stuff */
-		if ((o_ptr->discount == 0) && !object_known_p(o_ptr))
-			o_ptr->discount = feel;
+		/* Don't mark id'ed objects */
+		if (object_known_p(o_ptr)) return;
 
-		/* The object has been "sensed" */
-		o_ptr->ident |= (IDENT_SENSE);
+		/* It has already been sensed */
+		if (o_ptr->ident & (IDENT_SENSE))
+		{
+			/* Already sensed objects always get improved feelings */
+			if (cursed_p(o_ptr) || broken_p(o_ptr))
+				o_ptr->discount = INSCRIP_TERRIBLE;
+			else
+				o_ptr->discount = INSCRIP_SPECIAL;
+		}
+		else
+		{
+			/* Mark the object as indestructible */
+			o_ptr->discount = INSCRIP_INDESTRUCTIBLE;
+		}
 
 		/* Combine the pack */
 		p_ptr->notice |= (PN_COMBINE);
diff -u -r angband.org/src/defines.h angband/src/defines.h
--- angband.org/src/defines.h	Tue Jul 25 20:57:50 2000
+++ angband/src/defines.h	Thu Sep 14 22:27:24 2000
@@ -1771,21 +1771,22 @@
 /*
  * The special inscriptions.
  */
-#define INSCRIP_NULL		100
-#define INSCRIP_TERRIBLE	100+1
-#define INSCRIP_WORTHLESS	100+2
-#define INSCRIP_CURSED		100+3
-#define INSCRIP_BROKEN		100+4
-#define INSCRIP_AVERAGE		100+5
-#define INSCRIP_GOOD		100+6
-#define INSCRIP_EXCELLENT	100+7
-#define INSCRIP_SPECIAL		100+8
-#define INSCRIP_UNCURSED	100+9
+#define INSCRIP_NULL            100
+#define INSCRIP_TERRIBLE        100+1
+#define INSCRIP_WORTHLESS       100+2
+#define INSCRIP_CURSED          100+3
+#define INSCRIP_BROKEN          100+4
+#define INSCRIP_AVERAGE         100+5
+#define INSCRIP_GOOD            100+6
+#define INSCRIP_EXCELLENT       100+7
+#define INSCRIP_SPECIAL         100+8
+#define INSCRIP_UNCURSED        100+9
+#define INSCRIP_INDESTRUCTIBLE  100+10
 
 /*
  * Number of special inscriptions, plus one.
  */
-#define MAX_INSCRIP			10
+#define MAX_INSCRIP			11
 
 
 /*
diff -u -r angband.org/src/dungeon.c angband/src/dungeon.c
--- angband.org/src/dungeon.c	Tue Jul 25 20:57:48 2000
+++ angband/src/dungeon.c	Fri Sep 15 22:29:48 2000
@@ -222,7 +222,8 @@
 		if (!okay) continue;
 
 		/* It already has a discount or special inscription */
-		if (o_ptr->discount > 0) continue;
+		if ((o_ptr->discount > 0) &&
+		    (o_ptr->discount != INSCRIP_INDESTRUCTIBLE)) continue;
 
 		/* It has already been sensed, do not sense it again */
 		if (o_ptr->ident & (IDENT_SENSE)) continue;
@@ -233,6 +234,10 @@
 		/* Occasional failure on inventory items */
 		if ((i < INVEN_WIELD) && (0 != rand_int(5))) continue;
 
+		/* Indestructible objects are either excellent or terrible */
+		if (o_ptr->discount == INSCRIP_INDESTRUCTIBLE)
+			heavy = TRUE;
+
 		/* Check for a feeling */
 		feel = (heavy ? value_check_aux1(o_ptr) : value_check_aux2(o_ptr));
 
diff -u -r angband.org/src/tables.c angband/src/tables.c
--- angband.org/src/tables.c	Tue Jul 25 20:57:50 2000
+++ angband/src/tables.c	Thu Sep 14 22:34:18 2000
@@ -3322,6 +3322,7 @@
 	"good",
 	"excellent",
 	"special",
-	"uncursed"
+	"uncursed",
+	"indestructible"
 };
 
 

