diff --git a/lib/csharp/test/Multiplex/Client/Multiplex.Test.Client.cs b/lib/csharp/test/Multiplex/Client/Multiplex.Test.Client.cs
index 95ba5a4..ccfe21d 100644
--- a/lib/csharp/test/Multiplex/Client/Multiplex.Test.Client.cs
+++ b/lib/csharp/test/Multiplex/Client/Multiplex.Test.Client.cs
@@ -29,8 +29,8 @@
 
 namespace Test.Multiplex.Client
 {
-	public class TestClient
-	{
+    public class TestClient
+    {
         private void Run()
         {
             try
@@ -49,7 +49,7 @@
 
                 multiplex = new TMultiplexedProtocol( Protocol, Constants.NAME_AGGR);
                 Aggr.Iface aggr = new Aggr.Client( multiplex);
-                
+
                 sbyte i;
                 for( i = 1; 10 >= i; ++i)
                 {
diff --git a/lib/csharp/test/Multiplex/Multiplex.Test.Common.cs b/lib/csharp/test/Multiplex/Multiplex.Test.Common.cs
index 5296b68..a687852 100644
--- a/lib/csharp/test/Multiplex/Multiplex.Test.Common.cs
+++ b/lib/csharp/test/Multiplex/Multiplex.Test.Common.cs
@@ -30,8 +30,8 @@
 
 namespace Test.Multiplex
 {
-	public class Constants
-	{
+    public class Constants
+    {
         public const string NAME_BENCHMARKSERVICE = "BenchmarkService";
         public const string NAME_AGGR             = "Aggr";
     }
diff --git a/lib/csharp/test/Multiplex/Server/Multiplex.Test.Server.cs b/lib/csharp/test/Multiplex/Server/Multiplex.Test.Server.cs
index fbec1b7..61c2d7c 100644
--- a/lib/csharp/test/Multiplex/Server/Multiplex.Test.Server.cs
+++ b/lib/csharp/test/Multiplex/Server/Multiplex.Test.Server.cs
@@ -28,8 +28,8 @@
 
 namespace Test.Multiplex.Server
 {
-	public class TestServer
-	{
+    public class TestServer
+    {
         public interface ITestHandler
         {
             void SetServer( TServer aServer);
@@ -38,7 +38,7 @@
         protected class TestHandlerImpl : ITestHandler
         {
             private TServer Server;
-    
+
             public void SetServer( TServer aServer)
             {
                 Server = aServer;
@@ -53,7 +53,7 @@
                 int prev, next, result;
                 prev   = 0;
                 result = 1;
-                while( n > 0) 
+                while( n > 0)
                 {
                     next   = result + prev;
                     prev   = result;
@@ -110,7 +110,7 @@
                (benchHandler as ITestHandler).SetServer(null);
                (aggrHandler as ITestHandler).SetServer(null);
 
-           } 
+           }
            catch( Exception e)
            {
                Console.WriteLine( e.Message);
@@ -118,7 +118,7 @@
            Console.WriteLine( "done.");
        }
 
-        
+
        static void Main(string[] args)
        {
            Execute();
diff --git a/lib/csharp/test/Multiplex/maketest.sh b/lib/csharp/test/Multiplex/maketest.sh
index a2bcde4..1f29ee2 100755
--- a/lib/csharp/test/Multiplex/maketest.sh
+++ b/lib/csharp/test/Multiplex/maketest.sh
@@ -22,13 +22,13 @@
 ../../../../compiler/cpp/thrift --gen csharp  ../../../../contrib/async-test/aggr.thrift
 ../../../../compiler/cpp/thrift --gen csharp  ../../../rb/benchmark/Benchmark.thrift
 gmcs /t:library /out:./ThriftImpl.dll /recurse:./gen-csharp/* /reference:../../Thrift.dll Multiplex.Test.Common.cs
-gmcs  /out:MultiplexClient.exe /reference:../../Thrift.dll /reference:ThriftImpl.dll Client/Multiplex.Test.Client.cs  
-gmcs  /out:MultiplexServer.exe /reference:../../Thrift.dll /reference:ThriftImpl.dll Server/Multiplex.Test.Server.cs  
+gmcs  /out:MultiplexClient.exe /reference:../../Thrift.dll /reference:ThriftImpl.dll Client/Multiplex.Test.Client.cs
+gmcs  /out:MultiplexServer.exe /reference:../../Thrift.dll /reference:ThriftImpl.dll Server/Multiplex.Test.Server.cs
 
 
 
 export MONO_PATH=../../
 
-timeout 120 ./MultiplexServer.exe & 
+timeout 120 ./MultiplexServer.exe &
 sleep 3;
 ./MultiplexClient.exe
