diff --git a/modules/callbacks.inc b/modules/callbacks.inc
index 1ece786..8161879 100644
--- a/modules/callbacks.inc
+++ b/modules/callbacks.inc
@@ -341,6 +341,9 @@ function entity_metadata_user_get_properties($account, array $options, $name, $e
 
     case 'roles':
       return isset($account->roles) ? array_keys($account->roles) : array();
+
+    case 'theme':
+      return empty($account->theme) ? variable_get('theme_default') : $account->theme;
   }
 }
 
diff --git a/modules/user.info.inc b/modules/user.info.inc
index 5aa6ca2..dc749c8 100644
--- a/modules/user.info.inc
+++ b/modules/user.info.inc
@@ -95,6 +95,15 @@ function entity_metadata_user_entity_property_info() {
     'setter permission' => 'administer users',
     'schema field' => 'status',
   );
+  $properties['theme'] = array(
+    'label' => t("Default theme"),
+    'description' => t("The user's default theme."),
+    'getter callback' => 'entity_metadata_user_get_properties',
+    'setter callback' => 'entity_property_verbatim_set',
+    'access callback' => 'entity_metadata_user_properties_access',
+    'schema field' => 'theme',
+    'translatable' => FALSE,
+  );
   return $info;
 }
 
