diff --git a/InCallUI/res/values/qtistrings.xml b/InCallUI/res/values/qtistrings.xml
index 533f5fb..3c28164 100644
--- a/InCallUI/res/values/qtistrings.xml
+++ b/InCallUI/res/values/qtistrings.xml
@@ -88,13 +88,15 @@
     <!-- Text for the onscreen "consultative transfer" button -->
     <string name="qti_ims_onscreenConsultativeTransfer">Consultative Transfer</string>
 
+    <!-- Message indicating video calls not allowed if user enabled TTY Mode -->
+    <string name="video_call_not_allowed_if_tty_enabled">Please disable TTY Mode to upgrade to video calls.</string>
+
     <!-- Description of the deflect target in the Slide unlock screen. [CHAR LIMIT=NONE] -->
     <string name="qti_description_target_deflect">Deflect</string>
     <string name="qti_description_deflect_error">Number not set. Provide the number via IMS settings and retry.</string>
     <string name="qti_description_deflect_service_error">Call Deflection service is not supported.</string>
     <!-- Message indicating call failed due to handover not feasible -->
     <string name="call_failed_ho_not_feasible">Call was ended as LTE to 3G/2G handover was not feasible.</string>
-
     <!-- Text for the onscreen "Add Participant" button -->
     <string name="onscreenAddParticipant">Add Participant</string>
 
diff --git a/InCallUI/src/com/android/incallui/QtiCallUtils.java b/InCallUI/src/com/android/incallui/QtiCallUtils.java
index 528b67b..e741e67 100644
--- a/InCallUI/src/com/android/incallui/QtiCallUtils.java
+++ b/InCallUI/src/com/android/incallui/QtiCallUtils.java
@@ -139,6 +139,12 @@
             return;
         }
 
+        if (isTtyEnabled(context)) {
+            Log.w(LOG_TAG, "Call session modification is allowed only when TTY is off.");
+            displayToast(context, R.string.video_call_not_allowed_if_tty_enabled);
+            return;
+        }
+
         final ArrayList<CharSequence> items = new ArrayList<CharSequence>();
         final ArrayList<Integer> itemToCallType = new ArrayList<Integer>();
         final Resources res = context.getResources();
@@ -321,6 +327,21 @@
         return isEmergencyNumber;
     }
 
+    /**
+     * Returns true if TTY mode is enabled, false otherwise
+     */
+    private static boolean isTtyEnabled(final Context context) {
+        if (context == null) {
+            Log.w(context, "Context is null...");
+            return false;
+        }
+
+        final int TTY_MODE_OFF = 0;
+        final String PREFERRED_TTY_MODE = "preferred_tty_mode";
+        return (android.provider.Settings.Secure.getInt(context.getContentResolver(),
+                PREFERRED_TTY_MODE, TTY_MODE_OFF) != TTY_MODE_OFF);
+    }
+
     static int getPhoneId(int subId) {
         try {
             Class c = Class.forName("android.telephony.SubscriptionManager");
