diff -ur Android-Terminal-Emulator.orig/term/src/main/java/jackpal/androidterm/Term.java Android-Terminal-Emulator/term/src/main/java/jackpal/androidterm/Term.java
--- Android-Terminal-Emulator.orig/term/src/main/java/jackpal/androidterm/Term.java	2015-01-17 21:24:44.000000000 +0400
+++ Android-Terminal-Emulator/term/src/main/java/jackpal/androidterm/Term.java	2015-01-18 02:28:07.000000000 +0400
@@ -619,6 +619,15 @@
             onResumeSelectWindow = -1;
         }
         viewFlipper.onResume();
+
+        mHandler.postDelayed(new Runnable() {
+            public void run() {
+                EmulatorView v = (EmulatorView) mViewFlipper.getCurrentView();
+                if (v != null) {
+                    v.updateSize(true);
+                }
+            }
+        }, 500);
     }
 
     @Override
@@ -672,13 +681,22 @@
 
         EmulatorView v = (EmulatorView) mViewFlipper.getCurrentView();
         if (v != null) {
-            v.updateSize(false);
+            v.updateSize(true);
         }
 
         if (mWinListAdapter != null) {
             // Force Android to redraw the label in the navigation dropdown
             mWinListAdapter.notifyDataSetChanged();
         }
+
+        mHandler.postDelayed(new Runnable() {
+            public void run() {
+                EmulatorView v = (EmulatorView) mViewFlipper.getCurrentView();
+                if (v != null) {
+                    v.updateSize(true);
+                }
+            }
+        }, 500);
     }
 
     @Override
diff -ur Android-Terminal-Emulator.orig/term/src/main/jni/termExec.cpp Android-Terminal-Emulator/term/src/main/jni/termExec.cpp
--- Android-Terminal-Emulator.orig/term/src/main/jni/termExec.cpp	2015-01-17 21:24:44.000000000 +0400
+++ Android-Terminal-Emulator/term/src/main/jni/termExec.cpp	2015-01-17 21:25:07.000000000 +0400
@@ -39,7 +39,9 @@
 #include <sys/wait.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <unistd.h>
 #include <termios.h>
 #include <signal.h>
@@ -254,6 +256,8 @@
 {
     int fd;
     struct winsize sz;
+    char buf[256];
+    FILE *f;
 
     fd = env->GetIntField(fileDescriptor, field_fileDescriptor_descriptor);
 
@@ -267,6 +271,23 @@
     sz.ws_ypixel = ypixel;
 
     ioctl(fd, TIOCSWINSZ, &sz);
+
+
+    f = fopen("/data/data/jackpal.androidterm/suttys", "r");
+    if (f == NULL) {
+        return;
+    }
+    while (fgets(buf, sizeof(buf), f) != NULL) {
+        char *nlptr = strchr(buf, '\n');
+        if (nlptr) *nlptr = '\0';
+        fd = open(buf, O_RDWR);
+        if (fd < 0) {
+            continue;
+        }
+        ioctl(fd, TIOCSWINSZ, &sz);
+        close(fd);
+    }
+    fclose(f);
 }
 
 static void android_os_Exec_setPtyUTF8Mode(JNIEnv *env, jobject clazz,
