diff --git a/res/values/strings.xml b/res/values/strings.xml
index ee3ce95..f4086ea 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -90,7 +90,13 @@
     <string name="ssl_expired">This certificate has expired.</string>
     <!-- Message in an SSL Error dialog -->
     <string name="ssl_not_yet_valid">This certificate is not valid yet.</string>
-    
+    <!-- Message in an SSL Error dialog -->
+    <string name="ssl_date_invalid">This certificate has an invalid date.</string>
+    <!-- Message in an SSL Error dialog -->
+    <string name="ssl_invalid">This certificate is invalid.</string>
+    <!-- Message in an SSL Error dialog -->
+    <string name="ssl_unknown">Unknown certificate error.</string>
+
     <!-- Toast informing the user that loading has stopped for the current page. -->
     <string name="stopping">Stopping\u2026</string>
     <!-- Menu item to stop the current page from loading. -->
diff --git a/src/com/android/browser/PageDialogsHandler.java b/src/com/android/browser/PageDialogsHandler.java
index 015a9bb..3f64758 100644
--- a/src/com/android/browser/PageDialogsHandler.java
+++ b/src/com/android/browser/PageDialogsHandler.java
@@ -306,32 +306,23 @@
         final LinearLayout placeholder =
                 (LinearLayout)certificateView.findViewById(com.android.internal.R.id.placeholder);
 
+        LinearLayout ll = (LinearLayout)factory.inflate(R.layout.ssl_warning, placeholder);
+        TextView textView = (TextView)ll.findViewById(R.id.warning);
+
         if (error.hasError(SslError.SSL_UNTRUSTED)) {
-            LinearLayout ll = (LinearLayout)factory
-                .inflate(R.layout.ssl_warning, placeholder);
-            ((TextView)ll.findViewById(R.id.warning))
-                .setText(R.string.ssl_untrusted);
-        }
-
-        if (error.hasError(SslError.SSL_IDMISMATCH)) {
-            LinearLayout ll = (LinearLayout)factory
-                .inflate(R.layout.ssl_warning, placeholder);
-            ((TextView)ll.findViewById(R.id.warning))
-                .setText(R.string.ssl_mismatch);
-        }
-
-        if (error.hasError(SslError.SSL_EXPIRED)) {
-            LinearLayout ll = (LinearLayout)factory
-                .inflate(R.layout.ssl_warning, placeholder);
-            ((TextView)ll.findViewById(R.id.warning))
-                .setText(R.string.ssl_expired);
-        }
-
-        if (error.hasError(SslError.SSL_NOTYETVALID)) {
-            LinearLayout ll = (LinearLayout)factory
-                .inflate(R.layout.ssl_warning, placeholder);
-            ((TextView)ll.findViewById(R.id.warning))
-                .setText(R.string.ssl_not_yet_valid);
+            textView.setText(R.string.ssl_untrusted);
+        } else if (error.hasError(SslError.SSL_IDMISMATCH)) {
+            textView.setText(R.string.ssl_mismatch);
+        } else if (error.hasError(SslError.SSL_EXPIRED)) {
+            textView.setText(R.string.ssl_expired);
+        } else if (error.hasError(SslError.SSL_NOTYETVALID)) {
+            textView.setText(R.string.ssl_not_yet_valid);
+        } else if (error.hasError(SslError.SSL_DATE_INVALID)) {
+            textView.setText(R.string.ssl_date_invalid);
+        } else if (error.hasError(SslError.SSL_INVALID)) {
+            textView.setText(R.string.ssl_invalid);
+        } else {
+            textView.setText(R.string.ssl_unknown);
         }
 
         mSSLCertificateOnErrorHandler = handler;
