diff --git a/includes/common.inc b/includes/common.inc
index d651131f3f83c7db0fe02835210e95291642d8de..86fb23ae94f9405b31f9bf40cfa27550580d5269 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -6616,7 +6616,7 @@ function drupal_write_record($table, &$record, $primary_keys = array()) {
  * - name: The real name of the theme for display purposes
  * - description: Brief description
  * - screenshot: Path to screenshot relative to the theme's .info file.
- * - engine: Theme engine, typically: engine = phptemplate
+ * - engine: Theme engine; typically phptemplate.
  * - base: Name of a base theme, if applicable, eg: base = zen
  * - regions: Listed regions eg: region[left] = Left sidebar
  * - features: Features available eg: features[] = logo
diff --git a/modules/system/system.module b/modules/system/system.module
index 697c394ed147f482d2903b95aa28f63a07df7196..004a0be93dd4d1c8c37176f06bdca339cbc630e7 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -2410,6 +2410,7 @@ function _system_rebuild_theme_data() {
 
   // Set defaults for theme info.
   $defaults = array(
+    'engine' => 'phptemplate',
     'regions' => array(
       'sidebar_first' => 'Left sidebar',
       'sidebar_second' => 'Right sidebar',
@@ -2443,7 +2444,7 @@ function _system_rebuild_theme_data() {
     if (!empty($themes[$key]->info['base theme'])) {
       $sub_themes[] = $key;
     }
-    if (empty($themes[$key]->info['engine'])) {
+    if ($themes[$key]->info['engine'] == 'theme') {
       $filename = dirname($themes[$key]->uri) . '/' . $themes[$key]->name . '.theme';
       if (file_exists($filename)) {
         $themes[$key]->owner = $filename;
diff --git a/themes/bartik/bartik.info b/themes/bartik/bartik.info
index 689fcc330de7ef249159bdb9fa5c5a06dc0bba16..447a2b6c9eb37a151cd25372ae5f7bc082e5489a 100644
--- a/themes/bartik/bartik.info
+++ b/themes/bartik/bartik.info
@@ -5,7 +5,6 @@ description = A flexible, recolorable theme with many regions.
 package = Core
 version = VERSION
 core = 7.x
-engine = phptemplate
 
 stylesheets[all][] = css/layout.css
 stylesheets[all][] = css/style.css
diff --git a/themes/garland/garland.info b/themes/garland/garland.info
index 13576cd1eaaf5e1a67c1e0b9ed90ba8bf306e36f..ed681cfa970e3cae679567e60e171077f94cd616 100644
--- a/themes/garland/garland.info
+++ b/themes/garland/garland.info
@@ -4,7 +4,6 @@ description = A multi-column theme which can be configured to modify colors and
 package = Core
 version = VERSION
 core = 7.x
-engine = phptemplate
 stylesheets[all][] = style.css
 stylesheets[print][] = print.css
 settings[garland_width] = fluid
diff --git a/themes/seven/seven.info b/themes/seven/seven.info
index fa8629887a3dcab2cfc2958f2b86806208779a0a..aee47e039f1cd34d9582173a00d3b511e66bfe34 100644
--- a/themes/seven/seven.info
+++ b/themes/seven/seven.info
@@ -4,7 +4,6 @@ description = A simple one-column, tableless, fluid width administration theme.
 package = Core
 version = VERSION
 core = 7.x
-engine = phptemplate
 stylesheets[screen][] = reset.css
 stylesheets[screen][] = style.css
 settings[shortcut_module_link] = 1
diff --git a/themes/stark/stark.info b/themes/stark/stark.info
index 5ff7efa2502930186cdae3f8254e422263bb0745..d95f5361e46602e9e2496fb9f43f42ab6342e0a6 100644
--- a/themes/stark/stark.info
+++ b/themes/stark/stark.info
@@ -4,5 +4,4 @@ description = This theme demonstrates Drupal's default HTML markup and CSS style
 package = Core
 version = VERSION
 core = 7.x
-engine = phptemplate
 stylesheets[all][] = layout.css
diff --git a/themes/tests/test_theme/test_theme.info b/themes/tests/test_theme/test_theme.info
index 06fec4ed7874b790899bd00c330ab54848ae43ac..3a4b7c0eaae174abcc07b9150a7308ef65f5a2ca 100644
--- a/themes/tests/test_theme/test_theme.info
+++ b/themes/tests/test_theme/test_theme.info
@@ -2,7 +2,6 @@
 name = Test theme
 description = Theme for testing the theme system
 core = 7.x
-engine = phptemplate
 hidden = TRUE
 
 ; Normally, themes may list CSS files like this, and if they exist in the theme
diff --git a/themes/tests/update_test_basetheme/update_test_basetheme.info b/themes/tests/update_test_basetheme/update_test_basetheme.info
index f8035fa4fb58fce9a62db07270ca482cf1c0df89..11ff04ab3c0c8cc62e1750773090c730b451cdb6 100644
--- a/themes/tests/update_test_basetheme/update_test_basetheme.info
+++ b/themes/tests/update_test_basetheme/update_test_basetheme.info
@@ -2,5 +2,4 @@
 name = Update test base theme
 description = Test theme which acts as a base theme for other test subthemes.
 core = 7.x
-engine = phptemplate
 hidden = TRUE
diff --git a/themes/tests/update_test_subtheme/update_test_subtheme.info b/themes/tests/update_test_subtheme/update_test_subtheme.info
index 95d23eefbae0d7584aac5e09dc12bfbdfe6d7cfc..b9a9f0e37cad43cce5e0cf2aee6f16f5a491b22d 100644
--- a/themes/tests/update_test_subtheme/update_test_subtheme.info
+++ b/themes/tests/update_test_subtheme/update_test_subtheme.info
@@ -2,6 +2,5 @@
 name = Update test subtheme
 description = Test theme which uses update_test_basetheme as the base theme.
 core = 7.x
-engine = phptemplate
 base theme = update_test_basetheme
 hidden = TRUE