diff --git a/application/controllers/NewrequestController.php b/application/controllers/NewrequestController.php
index ebe5495d2be9d7cf02969471dc0117faccd40b34..0b9ad320c904d549fe8936ec5d5a4e94ab38c6a0 100644
--- a/application/controllers/NewrequestController.php
+++ b/application/controllers/NewrequestController.php
@@ -136,6 +136,13 @@ class NewRequestController extends Nmc_Controller_Action
                 $request->$key = $val;
             }
         } }
+
+        $filesToRemove = null;
+        if(array_key_exists('removeFiles', $_POST)) {
+            $filesToRemove = $_POST['removeFiles'];
+            unset($_POST['removeFiles']);
+        }
+
         unset($_POST['request']);
 
         unset($_POST['submit']);
@@ -336,6 +343,14 @@ class NewRequestController extends Nmc_Controller_Action
             }
         }
 
+        if (is_array($filesToRemove)) {
+            foreach ($filesToRemove as $fileType => $doRemove) {
+                if ($doRemove == 'yes') {
+                    $request->removeFileByType($fileType);
+                }
+            }
+        }
+
         if($submit == 'Submit') {
             return $this->_submitRequestAction();
         }
diff --git a/application/models/rows/Request.php b/application/models/rows/Request.php
index f4bc1b8269bec0886843e3f7bdeb59cd19c6d684..bd599be168e81bedf84cdede2ba3474c7bcec70d 100644
--- a/application/models/rows/Request.php
+++ b/application/models/rows/Request.php
@@ -91,6 +91,21 @@ class Request extends Nmc_Db_Table_Row
         $this->files[$key] = $newFile;
     }
 
+    public function removeFileByType($type) {
+        $key = null;
+        foreach($this->files as $currentKey => $file)
+        {
+            if($file->type == $type) {
+                $key = $currentKey;
+                break;
+            }
+        }
+
+        if($key !== null) {
+            unset($this->files[$key]);
+        }
+    }
+
     protected function _preSave()
     {
         // should only need to worry about this when dealing with a new request
diff --git a/application/views/request/supportive_material.xhtml b/application/views/request/supportive_material.xhtml
index c4774f0496f145dd9e040cc45bc15f18dd273f86..dd86c5d58cd7fdf1ea2041ab13b2877bff68d055 100644
--- a/application/views/request/supportive_material.xhtml
+++ b/application/views/request/supportive_material.xhtml
@@ -11,6 +11,11 @@
         <?php echo $this->request->getFileByType(RequestFile::SYLLABUS_TYPE)->title; ?>
         <input type="file" name="request[<?php echo RequestFile::SYLLABUS_TYPE; ?>]" />
     </label>
+    <label>
+        Remove
+        <input type="hidden"   name="removeFiles[<?php echo RequestFile::SYLLABUS_TYPE; ?>]" value="no" />
+        <input type="checkbox" name="removeFiles[<?php echo RequestFile::SYLLABUS_TYPE; ?>]" value="yes" />
+    </label>
 </fieldset>
 
 <fieldset>
@@ -19,6 +24,11 @@
         <?php echo $this->request->getFileByType(RequestFile::CROSSLIST_MEMO_TYPE)->title; ?>
         <input type="file" name="request[<?php echo RequestFile::CROSSLIST_MEMO_TYPE; ?>]" />
     </label>
+    <label>
+        Remove
+        <input type="hidden"   name="removeFiles[<?php echo RequestFile::CROSSLIST_MEMO_TYPE; ?>]" value="no" />
+        <input type="checkbox" name="removeFiles[<?php echo RequestFile::CROSSLIST_MEMO_TYPE; ?>]" value="yes" />
+    </label>
 </fieldset>
 
 <?php if($this->request->type == 5) { ?>
@@ -28,6 +38,11 @@
         <?php echo $this->request->getFileByType(RequestFile::IS_NARRATIVE_TYPE)->title; ?>
         <input type="file" name="request[<?php echo RequestFile::IS_NARRATIVE_TYPE; ?>]" />
     </label>
+    <label>
+        Remove
+        <input type="hidden"   name="removeFiles[<?php echo RequestFile::IS_NARRATIVE_TYPE; ?>]" value="no" />
+        <input type="checkbox" name="removeFiles[<?php echo RequestFile::IS_NARRATIVE_TYPE; ?>]" value="yes" />
+    </label>
 </fieldset>
 <?php } ?>
 
@@ -36,4 +51,8 @@
         <h2>Additional Documentation (opt.)</h2>
         <input type="file" name="request[additionalDocumentation]" />
     </label>
+    <label>
+        Remove
+        <input type="checkbox" name="removeFile[additionalDocumentation]" />
+    </label>
 </fieldset>