--- /Users/khankens/Desktop/d.o/media-HEAD/media.pages.inc	2011-01-12 20:42:01.000000000 -0500
+++ media.pages.inc	2011-02-24 11:42:53.000000000 -0500
@@ -178,8 +178,23 @@ function media_multiple_delete_confirm_s
  */
 function media_add_upload($form, &$form_state, $types = NULL) {
 
+  // Set up allowed file types.
+  if ($types) {
+    foreach ($types as $type) {
+      $media_type = media_type_load($type);
+      if (isset($media_type->type_callback_args['extensions'])) {
+        foreach ($media_type->type_callback_args['extensions'] as $ext) {
+          $allowed_extensions[] = $ext;
+        }
+      }
+    }
+  }
+  else {
+   $allowed_extensions = array(media_variable_get('file_extensions'));
+  }
+
   $validators = array(
-   'file_validate_extensions' => array(media_variable_get('file_extensions')),
+   'file_validate_extensions' => $allowed_extensions,
    'file_validate_size' => array(parse_size(media_variable_get('max_filesize'))),
   );
 
