diff --git a/workflow.install b/workflow.install
index 4976259..b0e6d60 100644
--- a/workflow.install
+++ b/workflow.install
@@ -328,8 +328,9 @@ function workflow_update_last_removed() {
 function workflow_update_6100() {
   $ret = array();
   db_add_field($ret, 'workflows', 'options', array('type' => 'text', 'size' => 'big', 'not null' => FALSE));
-  // Seed existing workflows with the behavior of showing the comment field.
-  $default = serialize(array('comment_log_node' => 1, 'comment_log_tab' => 1));
+  // Seed existing workflows with the behavior of showing the comment field,
+  // and logging state changes to watchdog.
+  $default = serialize(array('comment_log_node' => 1, 'comment_log_tab' => 1, 'watchdog_log' => 1));
   $query_result = db_query("UPDATE {workflows} SET options = '%s'", $default);
   $ret[] = array('success' => $query_result !== FALSE, 'query' => "UPDATE {workflows} SET options = '$default'");
   return $ret;
diff --git a/workflow.module b/workflow.module
index 27e5e5d..d4ec5c4 100644
--- a/workflow.module
+++ b/workflow.module
@@ -797,12 +797,15 @@ function workflow_execute_transition($node, $sid, $comment = NULL, $force = FALS
   // Register state change with watchdog.
   $type = node_type_get_name($node->type);
   if ($state = workflow_get_workflow_states_by_sid($sid)) {
-    watchdog('workflow', 'State of @type %node_title set to %state_name',
-      array(
-        '@type' => $type,
-        '%node_title' => $node->title,
-        '%state_name' => t($state->state)),
-      WATCHDOG_NOTICE, l('view', 'node/' . $node->nid));
+    $workflow = workflow_get_workflows_by_wid($state->wid);
+    if ($workflow->options['watchdog_log']) {
+      watchdog('workflow', 'State of @type %node_title set to %state_name',
+        array(
+          '@type' => $type,
+          '%node_title' => $node->title,
+          '%state_name' => t($state->state)),
+        WATCHDOG_NOTICE, l('view', 'node/' . $node->nid));
+    }
   }
   // Notify modules that transition has occurred. Action triggers should take place in response to this callback, not the previous one.
   module_invoke_all('workflow', 'transition post', $old_sid, $sid, $node);
diff --git a/workflow_admin_ui/workflow_admin_ui.module b/workflow_admin_ui/workflow_admin_ui.module
index fbb2840..994723e 100644
--- a/workflow_admin_ui/workflow_admin_ui.module
+++ b/workflow_admin_ui/workflow_admin_ui.module
@@ -422,6 +422,18 @@ function workflow_admin_ui_edit_form($form, $form_state, $workflow = NULL) {
       '#description' => t('Select any roles that should have access to the workflow tab on nodes that have a workflow.'),
       );
 
+    $form['watchdog'] = array(
+      '#type' => 'fieldset',
+      '#title' => t('Watchdog Logging for Workflow'),
+      );
+
+    $form['watchdog']['watchdog_log'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Log informational watchdog messages when a transition is executed (state of a node is changed).'),
+      '#default_value' => isset($workflow->options['watchdog_log']) ? $workflow->options['watchdog_log'] : 0,
+      '#description' => t('Optionally log transition state changes to watchdog.'),
+      );
+
     $form['submit'] = array('#type' => 'submit', '#value' => t('Save configuration'));
 
     return $form;
@@ -488,6 +500,7 @@ function workflow_admin_ui_edit_form_submit($form, &$form_state) {
     'comment_log_node' => $form_state['values']['comment_log_node'],
     'comment_log_tab' => $form_state['values']['comment_log_tab'],
     'name_as_title' => $form_state['values']['name_as_title'],
+    'watchdog_log' => $form_state['values']['watchdog_log'],
     );
 
   $workflow = array(
