diff --git a/webform.install b/webform.install
index a12ea22..83b18bc 100644
--- a/webform.install
+++ b/webform.install
@@ -503,10 +503,20 @@
     ->execute();
   $existing_formats = db_query("SELECT format FROM {filter_format}")->fetchCol();
   $default_format = variable_get('filter_default_format', 1);
+
+  // Since Webform may be updated separately from Drupal core, not all format
+  // names may be numbers when running this update.
+  $numeric_formats = array();
+  foreach ($existing_formats as $format_name) {
+    if (is_numeric($format_name)) {
+      $numeric_formats[] = (int) $format_name;
+    }
+  }
+
   db_update('webform')
     ->fields(array('confirmation_format' => $default_format))
     ->isNotNull('confirmation_format')
-    ->condition('confirmation_format', $existing_formats, 'NOT IN')
+    ->condition('confirmation_format', $numeric_formats, 'NOT IN')
     ->execute();
 }
 
