diff --git a/src/GUI/DrawingArea.java b/src/GUI/DrawingArea.java
index 1d7c5b9e5d191c9426cb6058a5176abfe24de47c..42b74cdfd99efea2d9e05d4ab74cc1e5c1921de2 100644
--- a/src/GUI/DrawingArea.java
+++ b/src/GUI/DrawingArea.java
@@ -205,7 +205,7 @@ public class DrawingArea extends JPanel implements MouseMotionListener, MouseLis
         switch (currentMode) {
 
             case TEXT:
-
+                g2.setColor(shapeColor);
                 g2.setFont(new Font("TimesRoman", Font.PLAIN, textSize));
                 g2.drawString(textString, startPoint.x, startPoint.y);
                 try {
diff --git a/src/client/DrawingUpdate.java b/src/client/DrawingUpdate.java
index 68c8f9ae6c6b685aa99eca6a0ee64b4bf61bd230..00f9bd09ada757434e3a8143f936f52913c59cbd 100644
--- a/src/client/DrawingUpdate.java
+++ b/src/client/DrawingUpdate.java
@@ -21,9 +21,10 @@ public class DrawingUpdate extends UnicastRemoteObject implements IDrawingUpdate
     }
 
     @Override
-    public boolean notifyTextDrawing(String fromClient, String text, Font font, Point startPoint) throws RemoteException {
+    public boolean notifyTextDrawing(String fromClient, String text, Font font, Color color, Point startPoint) throws RemoteException {
         client.getApplicationMain().getPaintGUI().getDrawingArea().getG2().setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
         client.getApplicationMain().getPaintGUI().getDrawingArea().getG2().setFont(font);
+        client.getApplicationMain().getPaintGUI().getDrawingArea().getG2().setColor(color);
         client.getApplicationMain().getPaintGUI().getDrawingArea().getG2().drawString(text, startPoint.x, startPoint.y);
         client.getApplicationMain().getPaintGUI().getDrawingArea().repaint();
         return true;
diff --git a/src/remote/IDrawingUpdate.java b/src/remote/IDrawingUpdate.java
index 02f17f1e685503799e74e2ca9f3f7d26bdff404d..a52781b7d17b92e080a36c8661e82107c95580af 100644
--- a/src/remote/IDrawingUpdate.java
+++ b/src/remote/IDrawingUpdate.java
@@ -6,7 +6,7 @@ import java.rmi.Remote;
 import java.rmi.RemoteException;
 
 public interface IDrawingUpdate extends Remote, Serializable {
-    boolean notifyTextDrawing(String fromClient, String text, Font font, Point startPoint) throws RemoteException;
+    boolean notifyTextDrawing(String fromClient, String text, Font font, Color color, Point startPoint) throws RemoteException;
     boolean notifyDrawing(String fromClient, Shape drawing, String mode, Color color, int strokeSize) throws RemoteException;
     boolean notifyDraggingDrawing(String fromClient, Shape drawing, String mode, Color color, int strokeSize) throws RemoteException;
     boolean notifyCanvasClearance(String fromClient) throws RemoteException;
diff --git a/src/server/DrawingController.java b/src/server/DrawingController.java
index d744ba6df9602c808554a69c58244b32605d2aa9..484ecdab32ba571564c62dbf2f2ff872698d9077 100644
--- a/src/server/DrawingController.java
+++ b/src/server/DrawingController.java
@@ -48,7 +48,7 @@ public class DrawingController extends UnicastRemoteObject implements IDrawingCo
         {
             if (!u.getUserName().equals(fromClient)) {
                 client = u.getIDrawingUpdate();
-                client.notifyTextDrawing(fromClient, text, font, startPoint);
+                client.notifyTextDrawing(fromClient, text, font, color, startPoint);
             }
         }
 
diff --git a/src/server/server.policy b/src/server/server.policy
index 5c059491c631fa37d14fc62d9654cdb13ce184c0..be17177b9474e62dc5d6c236756a51054ba11904 100644
--- a/src/server/server.policy
+++ b/src/server/server.policy
@@ -1,3 +1,4 @@
 grant codeBase "file:/Users/haiho/OneDrive - The University of Melbourne/Distributed Systems (COMP90015)/Assignment 2/InfinityMonkeys-remaster/comp90015-dsass2-infinitymonkeys-remaster/out/production/comp90015-dsass2-infinitymonkeys-remaster/" {
+    permission java.util.PropertyPermission '*', "read,write";
     permission java.security.AllPermission;
 };
\ No newline at end of file