diff --git a/theme/views_slideshow.theme.inc b/theme/views_slideshow.theme.inc
index 4d25de8..956a951 100644
--- a/theme/views_slideshow.theme.inc
+++ b/theme/views_slideshow.theme.inc
@@ -70,10 +70,16 @@ function _views_slideshow_preprocess_views_slideshow(&$vars) {
     foreach ($addons as $addon_id => $addon_info) {
       foreach ($addon_info['accepts'] as $imp_key => $imp_value) {
         if (is_array($imp_value)) {
-          $methods[$imp_key][] = preg_replace('/_(.?)/e',"strtoupper('$1')", $addon_id);
+          $methods[$imp_key][] = preg_replace_callback(
+                  '/_(.?)/',
+                  'views_slideshow_replace_callback',
+                  $addon_id);
         }
         else {
-          $methods[$imp_value][] = preg_replace('/_(.?)/e',"strtoupper('$1')", $addon_id);
+          $methods[$imp_value][] = preg_replace_callback(
+                  '/_(.?)/',
+                  'views_slideshow_replace_callback',
+                  $addon_id);
         }
       }
     }
@@ -166,6 +172,19 @@ function _views_slideshow_preprocess_views_slideshow(&$vars) {
 }
 
 /**
+ * Callback function for preg_replace.
+ *
+ * @param array $m
+ *   replacement strings
+ *
+ * @return array
+ *   replacement strings
+ */
+function views_slideshow_replace_callback($m) {
+  return strtoupper($m[1]);
+}
+
+/**
  * The current element of the slideshow.
  *
  * @ingroup themeable
@@ -185,7 +204,10 @@ function theme_views_slideshow_pager_widget_render($vars) {
     'viewsSlideshowPager' => array(
       $vars['vss_id'] => array(
         $vars['location'] => array(
-          'type' => preg_replace('/_(.?)/e',"strtoupper('$1')", $vars['settings']['type']),
+          'type' => preg_replace_callback(
+                      '/_(.?)/',
+                      'views_slideshow_replace_callback',
+                      $vars['settings']['type'])
         ),
       ),
     ),
@@ -278,7 +300,10 @@ function theme_views_slideshow_controls_widget_render($vars) {
     'viewsSlideshowControls' => array(
       $vars['vss_id'] => array(
         $vars['location'] => array(
-          'type' => preg_replace('/_(.?)/e', "strtoupper('$1')", $vars['settings']['type']),
+          'type' => preg_replace_callback(
+                      '/_(.?)/',
+                      'views_slideshow_replace_callback',
+                      $vars['settings']['type'])
         ),
       ),
     ),
