diff --git a/cpn.install b/cpn.install
index 618f52f..f44c39f 100644
--- a/cpn.install
+++ b/cpn.install
@@ -52,6 +52,7 @@ function cpn_uninstall() {
   // Delete variables.
   variable_del('cpn_syntax_highlighting');
   variable_del('cpn_path');
+  variable_del('cpn_preprocess');
   foreach (array_keys(node_type_get_types()) as $type) {
     variable_del('cpn_css_' . $type);
     variable_del('cpn_js_' . $type);
@@ -109,3 +110,11 @@ function cpn_update_7000() {
     }
   }
 }
+
+/**
+ * Enable preprocessing for existing sites to be backwards compatible, though
+ * the default for new installs is to disable preprocessing.
+ */
+function cpn_update_7001() {
+  variable_set('cpn_preprocess', TRUE);
+}
diff --git a/cpn.module b/cpn.module
index ee701ec..30310fd 100644
--- a/cpn.module
+++ b/cpn.module
@@ -257,6 +257,8 @@ function cpn_node_view($node, $view_mode, $langcode) {
 
   // Viewing: add files to the page (but only if they exist).
   else {
+    // Optionally preprocess the custom CSS.
+    $preprocess = variable_get('cpn_preprocess', FALSE);
     foreach (array('css', 'js') as $type) {
       $file = variable_get('cpn_path', 'public://cpn') . '/' . $node->nid . '.' . $type;
       if (is_file($file)) {
@@ -265,6 +267,7 @@ function cpn_node_view($node, $view_mode, $langcode) {
           'group' => $type == 'css' ? CSS_THEME : JS_THEME,
           'weight' => $type == 'css' ? CSS_THEME : JS_THEME,
           'data' => $file,
+          'preprocess' => $preprocess,
         );
       }
     }
