Index: verbs.scc
===================================================================
--- verbs.scc	(revision 346)
+++ verbs.scc	(working copy)
@@ -40,7 +40,7 @@
 
         setCurrentVerb(SntcLine);
         initVerb();
-        setVerbName("%v{sntcVerb} %n{sntcObjA} %s{sntcPrepo} %n{sntcObjB}");
+        setVerbName("%v{sntcVerb} %n{sntcObjADesc} %s{sntcPrepo} %n{sntcObjBDesc}");
         setVerbXY(160,145);
         setVerbColor(color);
         setVerbHiColor(hiColor);
Index: common.scc
===================================================================
--- common.scc	(revision 346)
+++ common.scc	(working copy)
@@ -66,7 +66,7 @@
     // this script run in the background cheking where the mouse is
     // and update the sentence and set the alt verb
     script mouseWatch() {
-        int vrb,obj,target,alt;
+        int vrb,obj,target,alt,desc;
 
         // we run forever (well until someone kill us)
         while(1) {
@@ -93,6 +93,9 @@
             obj = getActorAt(VAR_VIRT_MOUSE_X,VAR_VIRT_MOUSE_Y);
             if(obj == VAR_EGO)
                 obj = 0;
+            else if (actorObject[obj])
+            	desc = actorObject[obj];
+            
             unless(obj)
                 obj = getObjectAt(VAR_VIRT_MOUSE_X,VAR_VIRT_MOUSE_Y);
             unless(obj) {
@@ -107,18 +110,34 @@
                     obj = 0;
             }
             unless(vrb)
-                vrb = selVerb ? selVerb : WalkTo;                    
+                vrb = selVerb ? selVerb : WalkTo;
             
+            // Set description object
+            unless(desc)
+            	desc = obj;               
+            
             if(sntcPrepo) {
                 target = sntcObjB;
-                if(obj == sntcObjA) obj = 0;
+                if(obj == sntcObjA) {
+                	obj = 0;
+                	desc = 0;
+                }
             } else target = sntcObjA;
             
             //dbgPrint("%i{vrb} <> %i{sntcVerb} | %i{obj} <> %i{target}");
             unless(vrb == sntcVerb && obj == target) {
                 sntcVerb = vrb;
-                if(sntcPrepo) sntcObjB = obj;
-                else sntcObjA = obj;
+                
+                // Set sentence line
+                if(sntcPrepo) {
+                	sntcObjB = obj;
+                	sntcObjBDesc = desc;
+                }
+                else {
+                	sntcObjA = obj;
+                	sntcObjADesc = desc;
+                }
+                
                 setCurrentVerb(SntcLine);
                 redrawVerb();
             }
@@ -198,9 +217,11 @@
 
     script resetSntc(int vrb) {
         sntcObjA = 0;
+        sntcObjADesc = 0;
         if(sntcPrepo) {
             undim(sntcPrepo);
             sntcObjB = 0;
+            sntcObjBDesc = 0;
         }
         selVerb = vrb;
         setCurrentVerb(SntcLine);
@@ -528,7 +549,6 @@
 
     }
 
-
     // The main script is the first thing started by the engine.
     // At that point no room is loaded yet.
     script main (int bootParam) {
Index: common.sch
===================================================================
--- common.sch	(revision 346)
+++ common.sch	(working copy)
@@ -25,7 +25,7 @@
 verb WalkTo, WalkToXY;
 
 bit verbsOn,cursorOn,cursorLoaded;
-int sntcVerb,sntcObjA,sntcObjB;
+int sntcVerb,sntcObjA,sntcObjADesc,sntcObjB,sntcObjBDesc;
 int* invObj;
 
 
