diff --git a/compiler/cpp/src/generate/t_cpp_generator.cc b/compiler/cpp/src/generate/t_cpp_generator.cc
index ce93926..095dc47 100644
--- a/compiler/cpp/src/generate/t_cpp_generator.cc
+++ b/compiler/cpp/src/generate/t_cpp_generator.cc
@@ -834,7 +834,7 @@
 
   // Generate the header portion
   f_header_ <<
-    "class " << service_name_ << "Server : " <<
+    "class " << service_name_ << "Processor : " <<
     "public facebook::thrift::TProcessor {" << endl;
 
   // Protected data members
@@ -845,7 +845,7 @@
     indent() << "boost::shared_ptr<" << service_name_ << "If> _iface;" << endl <<
     indent() << "boost::shared_ptr<const facebook::thrift::protocol::TProtocol> _iprot;" << endl <<
     indent() << "boost::shared_ptr<const facebook::thrift::protocol::TProtocol> _oprot;" << endl <<
-    indent() << "std::map<std::string, void (" << service_name_ << "Server::*)(int32_t, boost::shared_ptr<facebook::thrift::transport::TTransport>, boost::shared_ptr<facebook::thrift::transport::TTransport>)> _processMap;" << endl;
+    indent() << "std::map<std::string, void (" << service_name_ << "Processor::*)(int32_t, boost::shared_ptr<facebook::thrift::transport::TTransport>, boost::shared_ptr<facebook::thrift::transport::TTransport>)> _processMap;" << endl;
   indent_down();
 
   // Process function declarations
@@ -868,7 +868,7 @@
     declare_map += (*f_iter)->get_name();
     declare_map += "\"] = &";
     declare_map += service_name_;
-    declare_map += "Server::process_";
+    declare_map += "Processor::process_";
     declare_map += (*f_iter)->get_name();
     declare_map += ";\n";
   }
@@ -876,17 +876,17 @@
 
   f_header_ << 
     " public: " << endl <<
-    indent() << service_name_ << "Server(boost::shared_ptr<" << service_name_ << "If> iface, boost::shared_ptr<const facebook::thrift::protocol::TProtocol> prot) : " <<
+    indent() << service_name_ << "Processor(boost::shared_ptr<" << service_name_ << "If> iface, boost::shared_ptr<const facebook::thrift::protocol::TProtocol> prot) : " <<
     "_iface(iface), _iprot(prot), _oprot(prot) {" << endl <<
     declare_map <<
     indent() << "}" << endl <<
-    indent() << service_name_ << "Server(boost::shared_ptr<" << service_name_ << "If> iface, boost::shared_ptr<const facebook::thrift::protocol::TProtocol> iprot, boost::shared_ptr<const facebook::thrift::protocol::TProtocol> oprot) : " <<
+    indent() << service_name_ << "Processor(boost::shared_ptr<" << service_name_ << "If> iface, boost::shared_ptr<const facebook::thrift::protocol::TProtocol> iprot, boost::shared_ptr<const facebook::thrift::protocol::TProtocol> oprot) : " <<
     "_iface(iface), _iprot(iprot), _oprot(oprot) {" << endl <<
     declare_map <<
     indent() << "}" << endl <<
     endl <<
     indent() << "bool process(boost::shared_ptr<facebook::thrift::transport::TTransport> _itrans, boost::shared_ptr<facebook::thrift::transport::TTransport> _otrans);" << endl <<
-    indent() << "virtual ~" << service_name_ << "Server() {}" << endl;
+    indent() << "virtual ~" << service_name_ << "Processor() {}" << endl;
   indent_down();
   f_header_ <<
     "};" << endl << endl;
@@ -894,7 +894,7 @@
 
   // Generate the server implementation
   f_service_ <<
-    "bool " << service_name_ << "Server::" <<
+    "bool " << service_name_ << "Processor::" <<
     "process(boost::shared_ptr<facebook::thrift::transport::TTransport> itrans, boost::shared_ptr<facebook::thrift::transport::TTransport> otrans) {" << endl;
   indent_up();
 
@@ -913,7 +913,7 @@
 
   // HOT: member function pointer map
   f_service_ <<
-    indent() << "std::map<std::string, void (" << service_name_ << "Server::*)(int32_t, boost::shared_ptr<facebook::thrift::transport::TTransport>, boost::shared_ptr<facebook::thrift::transport::TTransport>)>::iterator pfn;" << endl <<
+    indent() << "std::map<std::string, void (" << service_name_ << "Processor::*)(int32_t, boost::shared_ptr<facebook::thrift::transport::TTransport>, boost::shared_ptr<facebook::thrift::transport::TTransport>)>::iterator pfn;" << endl <<
     indent() << "pfn = _processMap.find(fname);" << endl <<
     indent() << "if (pfn == _processMap.end()) {" << endl <<
     indent() << "  throw facebook::thrift::Exception(\"Unknown function name: '\"+fname+\"'\");" << endl <<
@@ -1003,7 +1003,7 @@
                                                 t_function* tfunction) {
   // Open function
   f_service_ <<
-    "void " << tservice->get_name() << "Server::" <<
+    "void " << tservice->get_name() << "Processor::" <<
     "process_" << tfunction->get_name() <<
     "(int32_t seqid, boost::shared_ptr<facebook::thrift::transport::TTransport> itrans, boost::shared_ptr<facebook::thrift::transport::TTransport> otrans)" << endl;
   scope_up(f_service_);
diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc
index 6d12dce..987a755 100644
--- a/compiler/cpp/src/generate/t_java_generator.cc
+++ b/compiler/cpp/src/generate/t_java_generator.cc
@@ -599,11 +599,11 @@
 
   // Generate the header portion
   f_service_ <<
-    "public static class Server implements TProcessor {" << endl;
+    "public static class Processor implements TProcessor {" << endl;
   indent_up();
 
   indent(f_service_) <<
-    "public Server(Iface iface, TProtocol prot)" << endl;
+    "public Processor(Iface iface, TProtocol prot)" << endl;
   scope_up(f_service_);
   indent(f_service_) << 
     "this(iface, prot, prot);" << endl;
@@ -611,7 +611,7 @@
   f_service_ << endl;
 
   indent(f_service_) <<
-    "public Server(Iface iface, TProtocol iprot, TProtocol oprot)" << endl;
+    "public Processor(Iface iface, TProtocol iprot, TProtocol oprot)" << endl;
   scope_up(f_service_);
   f_service_ <<
     indent() << "_iface = iface;" << endl <<
diff --git a/compiler/cpp/src/generate/t_py_generator.cc b/compiler/cpp/src/generate/t_py_generator.cc
index a8f66ad..f07af33 100644
--- a/compiler/cpp/src/generate/t_py_generator.cc
+++ b/compiler/cpp/src/generate/t_py_generator.cc
@@ -571,7 +571,7 @@
 
   // Generate the header portion
   f_service_ <<
-    "class Server(Iface, TProcessor):" << endl;
+    "class Processor(Iface, TProcessor):" << endl;
   indent_up();
 
   indent(f_service_) <<
@@ -587,7 +587,7 @@
     indent() << "self.__processMap = {" << endl;
   for (f_iter = functions.begin(); f_iter != functions.end(); ++f_iter) {
     f_service_ <<
-      indent() << "  \"" << (*f_iter)->get_name() << "\" : Server.process_" << (*f_iter)->get_name() << "," << endl;
+      indent() << "  \"" << (*f_iter)->get_name() << "\" : Processor.process_" << (*f_iter)->get_name() << "," << endl;
   }
   f_service_ <<
     indent() << "}" << endl;
diff --git a/test/cpp/src/TestServer.cc b/test/cpp/src/TestServer.cc
index f743aea..f2f9eca 100644
--- a/test/cpp/src/TestServer.cc
+++ b/test/cpp/src/TestServer.cc
@@ -332,7 +332,7 @@
 
   shared_ptr<TestHandler> testHandler(new TestHandler());
 
-  shared_ptr<ThriftTestServer> testServer(new ThriftTestServer(testHandler, binaryProtocol));
+  shared_ptr<ThriftTestProcessor> testProcessor(new ThriftTestProcessor(testHandler, binaryProtocol));
 
   // Transport
   shared_ptr<TServerSocket> serverSocket(new TServerSocket(port));
@@ -346,7 +346,7 @@
   if (serverType == "simple") {
 
     // Server
-    TSimpleServer simpleServer(testServer,
+    TSimpleServer simpleServer(testProcessor,
 			       serverSocket,
                                transportFactory,
 			       serverOptions
@@ -367,7 +367,7 @@
 
     threadManager->start();
 
-    TThreadPoolServer threadPoolServer(testServer,
+    TThreadPoolServer threadPoolServer(testProcessor,
 				       serverSocket,
                                        transportFactory,
 				       threadManager,
diff --git a/test/java/src/TestServer.java b/test/java/src/TestServer.java
index b527777..ab8603a 100644
--- a/test/java/src/TestServer.java
+++ b/test/java/src/TestServer.java
@@ -241,8 +241,8 @@
         new TBinaryProtocol();
       TestHandler testHandler =
         new TestHandler();
-      ThriftTest.Server testServer =
-        new ThriftTest.Server(testHandler, binaryProtocol);
+      ThriftTest.Processor testProcessor =
+        new ThriftTest.Processor(testHandler, binaryProtocol);
 
       // Transport
       TServerSocket tServerSocket =
@@ -251,10 +251,10 @@
       TServer serverEngine;
 
       // Simple Server
-      // serverEngine = new TSimpleServer(testServer, tServerSocket);
+      // serverEngine = new TSimpleServer(testProcessor, tServerSocket);
 
       // ThreadPool Server
-      serverEngine =  new TThreadPoolServer(testServer, tServerSocket);
+      serverEngine =  new TThreadPoolServer(testProcessor, tServerSocket);
 
       // Run it
       System.out.println("Starting the server on port " + port + "...");
diff --git a/test/php/TestClient.php b/test/php/TestClient.php
index a92adcc..27a66ea 100644
--- a/test/php/TestClient.php
+++ b/test/php/TestClient.php
@@ -7,8 +7,11 @@
   $MODE = 'normal';
 }
 
+/** Set the Thrift root */
+$GLOBALS['THRIFT_ROOT'] = '../../lib/php/src';
+
 /** Include the Thrift base */
-require_once '/home/mcslee/code/projects/thrift/lib/php/src/Thrift.php';
+require_once $GLOBALS['THRIFT_ROOT'].'/Thrift.php';
 
 /** Include the binary protocol */
 require_once $GLOBALS['THRIFT_ROOT'].'/protocol/TBinaryProtocol.php';
diff --git a/test/py/TestServer.py b/test/py/TestServer.py
index db2ad81..f0f9ba1 100755
--- a/test/py/TestServer.py
+++ b/test/py/TestServer.py
@@ -54,7 +54,7 @@
 transport = TSocket.TServerSocket(9090)
 protocol = TBinaryProtocol.TBinaryProtocol()
 handler = TestHandler()
-iface = ThriftTest.Server(handler, protocol)
+processor = ThriftTest.Processor(handler, protocol)
 factory = TTransport.TBufferedTransportFactory()
-server = TServer.TSimpleServer(iface, transport, factory)
+server = TServer.TSimpleServer(processor, transport, factory)
 server.run()
