Index: scvm_op.c
===================================================================
--- scvm_op.c	(revision 298)
+++ scvm_op.c	(working copy)
@@ -1306,13 +1306,28 @@
   return SCVM_ERR_NO_OP;
 }
 
+static int scvm_op_actor_talk(scvm_t* vm, scvm_thread_t* thread) {
+	int r,len;
+	int actor;
+	if((r = scvm_pop(vm,&actor))) return r;
+	
+	if((r = scvm_thread_strlen(thread,&len))) return r;
+	thread->code_ptr += len+1;
+	
+	return 0;
+}
+
+static int scvm_op_ego_talk(scvm_t* vm, scvm_thread_t* thread) {
+	scvm_push(vm, vm->var->ego);
+	return scvm_op_actor_talk(vm, thread);
+}
+
 static int scvm_op_dummy_get_at(scvm_t* vm, scvm_thread_t* thread) {
   int r,x,y;
   if((r = scvm_vpop(vm,&y,&x,NULL))) return r;
   return scvm_push(vm,0);
 }
 
-
 static int scvm_op_subop(scvm_t* vm, scvm_thread_t* thread) {
   return scvm_thread_do_op(vm,thread,vm->suboptable);
 }
@@ -1551,8 +1566,8 @@
   // B8
   { scvm_op_dummy_print, "actor print" },
   { scvm_op_dummy_print, "ego print" },
-  { NULL, NULL },
-  { NULL, NULL },
+  { scvm_op_actor_talk, "actor talk" },
+  { scvm_op_ego_talk, "ego talk" },
   // BC
   { scvm_op_dim, "dim" },
   { NULL, NULL },
