diff --git a/gcc/lto-wrapper.c b/gcc/lto-wrapper.c
index 516c621..08106be 100644
--- a/gcc/lto-wrapper.c
+++ b/gcc/lto-wrapper.c
@@ -1983,16 +1983,16 @@
   while(r_iter != response.end()) {
     Cody::Packet const &p = *r_iter;
 
-    if(p.GetCode() == Cody::Client::PC_INVOKED) {
-      if(strcmp(p.GetString().c_str(), "success") == 0) {
-        fprintf(stderr, "\tlto compilation succeeded\n");
-      }
-      else {
-        fprintf(stderr, "\tlto compilation failure message: %s\n", p.GetString().c_str());
-      }
+    if(p.GetCode() == Cody::Client::PC_OK) {
+      fprintf(stderr, "\tlto compilation succeeded\n");
     }
     else {
-      fprintf(stderr, "\tlto compilation unknown failure\n");
+      if(!p.GetString().empty()) {
+        fprintf(stderr, "\tlto compilation failure message: %s\n", p.GetString().c_str());
+      }
+      else {
+        fprintf(stderr, "\tlto compilation unknown failure\n");
+      }
     }
 
     ++r_iter;
diff --git a/gcc/mapper-resolver.cc b/gcc/mapper-resolver.cc
index d8e1b57..1da1ce9 100644
--- a/gcc/mapper-resolver.cc
+++ b/gcc/mapper-resolver.cc
@@ -170,7 +170,7 @@
 int
 module_resolver::ModuleRepoRequest (Cody::Server *s)
 {
-  s->ModuleRepoResponse (repo);
+  s->PathnameResponse (repo);
   return 0;
 }
 
@@ -190,7 +190,7 @@
   if (iter->second.empty ())
     s->ErrorResponse ("no such module");
   else
-    s->ModuleCMIResponse (iter->second);
+    s->PathnameResponse (iter->second);
 
   return 0;
 }
@@ -237,9 +237,9 @@
     }
 
   if (iter == map.end () || iter->second.empty ())
-    s->IncludeTranslateResponse (false);
+    s->BoolResponse (false);
   else
-    s->ModuleCMIResponse (iter->second);
+    s->PathnameResponse (iter->second);
 
   return 0;
 }
@@ -265,7 +265,7 @@
   fork_execute (new_argv[0], new_argv, true);
 
   // TODO: send back a compile status response
-  s->InvokedResponse("success");
+  s->OKResponse();
   return 0;
 }
 
