Index: core/units/categories/categories_event_handler.php
===================================================================
--- core/units/categories/categories_event_handler.php
+++ core/units/categories/categories_event_handler.php
@@ -1848,8 +1848,20 @@
 			$object->setRequired('PageCacheKey', $object->GetDBField('OverridePageCacheKey'));
 			$object->SetDBField('Template', $this->_stripTemplateExtension( $object->GetDBField('Template') ));
 
-			if ($object->GetDBField('Type') == PAGE_TYPE_TEMPLATE) {
-				if (!$this->_templateFound($object->GetDBField('Template'), $object->GetDBField('ThemeId'))) {
+			$category_type = $object->GetDBField('Type');
+
+			// Changing category type would associate/disassociate it to theme.
+			if ( $category_type != $object->GetOriginalField('Type') ) {
+				if ( $category_type == PAGE_TYPE_TEMPLATE ) {
+					$object->SetDBField('ThemeId', $this->_getCurrentThemeId());
+				}
+				else {
+					$object->SetDBField('ThemeId', 0);
+				}
+			}
+
+			if ( $category_type == PAGE_TYPE_TEMPLATE ) {
+				if ( !$this->_templateFound($object->GetDBField('Template'), $object->GetDBField('ThemeId')) ) {
 					$object->SetError('Template', 'template_file_missing', 'la_error_TemplateFileMissing');
 				}
 			}