diff --git a/bot.module b/bot.module
index 47cb70a..08792a3 100644
--- a/bot.module
+++ b/bot.module
@@ -416,7 +416,7 @@ function bot_settings() {
   $form['bot_nick_recovery'] = array(
     '#collapsed'      => FALSE,
     '#collapsible'    => TRUE,
-    '#description'    => 'The following variables are available for use in these commands: !bot_nickname, !bot_password.',
+    '#description'    => t('The following variables are available for use in these commands: !bot_nickname, !bot_password.'),
     '#title'          => t('Nick recovery'),
     '#type'           => 'fieldset',
   );
@@ -433,5 +433,19 @@ function bot_settings() {
     '#type'          => 'textfield',
   );
 
+  $form['bot_smartirc'] = array(
+    '#collapsed'      => TRUE,
+    '#collapsible'    => TRUE,
+    '#description'    => t('SmartIRC PHP Module Settings. Do not change these settings unless you know what you\'re doing.'),
+    '#title'          => t('SmartIRC (Advanced)'),
+    '#type'           => 'fieldset',
+  );
+  $form['bot_smartirc']['bot_smartirc_path'] = array(
+    '#default_value' => variable_get('bot_smartirc_path', 'Net'),
+    '#description'   => t("If you do not have permission to install a PHP extension, <a href='%url'>download the NetSmartIRC extension</a> source files and enter the path to those files relative to your docroot. Do not include a trailing slash.", array('%url' => 'http://pear.php.net/package/Net_SmartIRC/download')),
+    '#title'         => t('Path'),
+    '#type'          => 'textfield',
+  );
+
   return system_settings_form($form);
 }
diff --git a/bot.smartirc.inc b/bot.smartirc.inc
index 25b57ca..bb4f355 100644
--- a/bot.smartirc.inc
+++ b/bot.smartirc.inc
@@ -9,8 +9,8 @@
  * Start the Net_SmartIRC bot.
  */
 function bot_smartirc_start() {
-  require_once 'Net/SmartIRC.php';
-  require_once 'Net/SmartIRC/defines.php';
+  require_once variable_get('bot_smartirc_path', 'Net') . '/SmartIRC.php';
+  require_once variable_get('bot_smartirc_path', 'Net') . '/SmartIRC/defines.php';
   variable_set('bot_status', BOT_STATUS_CONNECTING);
 
   if (db_driver() === 'mysql') {
diff --git a/bot_log/bot_log.module b/bot_log/bot_log.module
index 23d0fc5..59850ce 100644
--- a/bot_log/bot_log.module
+++ b/bot_log/bot_log.module
@@ -155,7 +155,7 @@ function bot_log_irc_msg_topicchange($data) {
  */
 function bot_log_irc_bot_reply_message($to, $message) {
   if (drupal_substr($to, 0, 1) == '#') { // but, naturally, only for channel messages.
-    require_once 'Net/SmartIRC/defines.php'; // load the whole thingy in for one constant. bah!
+    require_once variable_get('bot_smartirc_path', 'Net') . '/SmartIRC/defines.php';
     bot_log_insert(SMARTIRC_TYPE_CHANNEL, $to, variable_get('bot_nickname', 'bot_module'), $message);
   }
 }
@@ -165,7 +165,7 @@ function bot_log_irc_bot_reply_message($to, $message) {
  */
 function bot_log_irc_bot_reply_action($to, $message) {
   if (drupal_substr($to, 0, 1) == '#') { // but, naturally, only for channel messages.
-    require_once 'Net/SmartIRC/defines.php'; // load the whole thingy in for one constant. bah!
+    require_once variable_get('bot_smartirc_path', 'Net') . '/SmartIRC/defines.php';
     bot_log_insert(SMARTIRC_TYPE_ACTION, $to, variable_get('bot_nickname', 'bot_module'), $message);
   }
 }
@@ -229,7 +229,7 @@ function bot_log_insert($type, $channel, $nick, $message) {
  *   A themed log for display.
  */
 function bot_log_date($channel = NULL, $date = NULL) {
-  require_once 'Net/SmartIRC/defines.php'; // type constants.
+  require_once variable_get('bot_smartirc_path', 'Net') . '/SmartIRC/defines.php';
 
   if (!isset($channel)) { // no channel? show a list of all we're logging.
     foreach (variable_get('bot_log_channels', array()) as $available_channel) { // RUN AWAY!
