diff --git a/node_limit.module b/node_limit.module
index 612b292..3e9950f 100644
--- a/node_limit.module
+++ b/node_limit.module
@@ -109,6 +109,19 @@ function node_limit_menu_alter(&$items) {
 }
 
 /**
+ * Implements hook_init().
+ */
+function node_limit_init() {
+  if (arg(0) == 'node' && arg(1) == 'add' && $type_url_str = arg(2)) {
+    $type = str_replace('-', '_', $type_url_str);
+    if (!node_limit_access($type)) {
+      $nodetype = node_type_get_type($type);
+      drupal_set_message(t("You can't create more content of type !type. Please contact Site Administrator for more information.", array('!type' => check_plain($nodetype->name))), 'error');
+    }
+  }
+}
+
+/**
  * Rewriten access callback for node/add page.
  * Avoid access to this page when the user does not have the right to add any content type.
  */
@@ -235,8 +248,6 @@ function _node_limit_violates_limit(&$node, $context = '') {
     $select = _node_limit_sql($limit['lid']);
     $count = $select->execute()->fetchField();
     if ($count >= $limit['nlimit']  && empty($context)) {
-      $nodetype = node_type_get_type($node);
-      drupal_set_message(t("You can't create more content of type !type. Please contact Site Administrator for more information.", array('!type' => check_plain($nodetype->name))), 'error');
       return TRUE;
     }
   }
