diff --git a/empty_page.admin.inc b/empty_page.admin.inc
index 89f99957983b0ec2fe03ef5f287d930cee44a0ef..6c61b06b2de526fbbda3c0524d592952ae30bd82 100644
--- a/empty_page.admin.inc
+++ b/empty_page.admin.inc
@@ -144,6 +144,12 @@ function empty_page_callbacks_form($form, &$form_state, $cid = NULL) {
     '#description' => '',
     '#default_value' => $callback ? $callback->page_title : '',
   );
+  $form['empty_page_basic']['empty_page_allow_arguments'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Allow additional URL arguments'),
+    '#description' => '',
+    '#default_value' => isset($callback->allow_arguments) ? $callback->allow_arguments : TRUE,
+  );
   $form['empty_page_basic']['buttons']['submit'] = array(
     '#type' => 'submit',
     '#value' => $callback ? t('Save') : t('Add'),
@@ -188,6 +194,7 @@ function empty_page_callbacks_form_submit($form, &$form_state) {
 
   $callback->path = $form_state['values']['empty_page_callback_path'];
   $callback->page_title = $form_state['values']['empty_page_callback_page_title'];
+  $callback->allow_arguments = $form_state['values']['empty_page_allow_arguments'];
   // TODO: Handle saving of custom perms.
   $callback->changed = REQUEST_TIME;
 
diff --git a/empty_page.install b/empty_page.install
index cea8669a6b4772b1ebd86c066aca24c292c6fdf1..3c2f23382cea5fa6c997cbdc00fa38c922120f91 100644
--- a/empty_page.install
+++ b/empty_page.install
@@ -8,6 +8,17 @@
  */
 
 /**
+ * Enables option to have empty page return a 404 if additional URL arguments are passed.
+ */
+function empty_page_update_7011() {
+  db_add_field('empty_page', 'allow_arguments',array(
+    'type' => 'int',
+    'not null' => FALSE,
+    'default' => 1,
+  ));
+}
+
+/**
  * Implements hook_install().
  */
 function empty_page_install() {
@@ -65,6 +76,11 @@ function empty_page_schema() {
         'not null' => TRUE,
         'default' => 0,
       ),
+      'allow_arguments' => array(
+        'type' => 'int',
+        'not null' => FALSE,
+        'default' => 1,
+      ),
     ),
     'indexes' => array(
       'changed' => array('changed'),
diff --git a/empty_page.module b/empty_page.module
index 8b5085044cd65f31875f6efa49ad623236c62297..461a0fcd54115eb96dbec0dea3276f327619afee 100644
--- a/empty_page.module
+++ b/empty_page.module
@@ -101,10 +101,18 @@ function empty_page_theme(&$existing, $type, $theme, $path) {
  * @return string $output
  */
 function empty_page_empty() {
-  // Return a space so that an empty page can be used for 40x pages.
-  return ' ';
-}
+  $router = menu_get_item();
+  $item = $router['path'];
+  $callback = empty_page_get_callback_by_path($item);
+  $path = current_path();
 
+  if ($callback->allow_arguments || $path == $callback->path) {
+    return ' ';
+  }
+  else {
+    return MENU_NOT_FOUND;
+  }
+}
 
 /**
  *
@@ -121,7 +129,7 @@ function empty_page_empty() {
 function empty_page_get_callbacks() {
   $callbacks = array();
   $results = db_select('empty_page')
-    ->fields('empty_page', array('cid', 'path', 'page_title', 'data', 'changed', 'created'))
+    ->fields('empty_page', array('cid', 'path', 'page_title', 'data', 'changed', 'created', 'allow_arguments'))
     ->orderBy('changed', 'DESC')
     ->execute();
   foreach ($results as $callback) {
@@ -138,7 +146,7 @@ function empty_page_get_callbacks() {
  */
 function empty_page_get_callback($cid) {
   $callback = db_select('empty_page')
-    ->fields('empty_page', array('cid', 'path', 'page_title', 'data', 'changed', 'created'))
+    ->fields('empty_page', array('cid', 'path', 'page_title', 'data', 'changed', 'created', 'allow_arguments'))
     ->condition('cid', $cid)
     ->execute()
     ->fetchObject();
@@ -146,6 +154,21 @@ function empty_page_get_callback($cid) {
 }
 
 /**
+ * Get an Empty Page callback by path.
+ *
+ * @param int $cid
+ * @return object $callback
+ */
+function empty_page_get_callback_by_path($path) {
+  $callback = db_select('empty_page')
+      ->fields('empty_page', array('cid', 'path', 'page_title', 'data', 'changed', 'created', 'allow_arguments'))
+      ->condition('path', $path)
+      ->execute()
+      ->fetchObject();
+  return $callback;
+}
+
+/**
  * Save an Empty Page callback.
  *
  * @param object $callback
@@ -158,6 +181,7 @@ function empty_page_save_callback($callback) {
         'path' => $callback->path,
         'page_title' => $callback->page_title,
         'changed' => REQUEST_TIME,
+        'allow_arguments' => $callback->allow_arguments ? 1 : 0,
       ))
       ->condition('cid', $callback->cid)
       ->execute();
@@ -170,6 +194,7 @@ function empty_page_save_callback($callback) {
         'page_title' => $callback->page_title,
         'created' => REQUEST_TIME,
         'changed' => REQUEST_TIME,
+        'allow_arguments' => $callback->allow_arguments ? 1 : 0,
       ))
       ->execute();
     $ret = $id;
