diff --git a/sql/database-create.sql b/sql/database-create.sql
index 2a439594844a46ab6ea03faef7f77fcc6ddc5869..33c9d4977a1e80dafe432aa218983cac181e7354 100644
--- a/sql/database-create.sql
+++ b/sql/database-create.sql
@@ -1926,6 +1926,7 @@ CREATE TABLE `images` (
   `auth_key` varchar(512) default NULL,
   `decryption_key` varchar(256) default NULL,
   `hash` varchar(64) default NULL,
+  `size` bigint(20) unsigned NOT NULL default '0',
   `lba_low` bigint(20) unsigned NOT NULL default '0',
   `lba_high` bigint(20) unsigned NOT NULL default '0',
   `lba_size` int(10) unsigned NOT NULL default '512',
diff --git a/sql/database-fill.sql b/sql/database-fill.sql
index 01482a84557f7a8430a9825e67af63d41fd8aa74..c2694754188902a789f64b4fe3b25e34b0afe348 100644
--- a/sql/database-fill.sql
+++ b/sql/database-fill.sql
@@ -1057,6 +1057,7 @@ REPLACE INTO table_regex VALUES ('images','max_concurrent','text','redirect','de
 REPLACE INTO table_regex VALUES ('images','reboot_waittime','text','redirect','default:int',0,0,NULL);
 REPLACE INTO table_regex VALUES ('images','format','text','regex','^[-\\w]+$',1,8,NULL);
 REPLACE INTO table_regex VALUES ('images','hash','text','regex','^[\\w]+$',16,64,NULL);
+REPLACE INTO `table_regex` VALUES ('images','size','int','redirect','default:bigint',0,0,NULL);
 REPLACE INTO `table_regex` VALUES ('images','lba_low','int','redirect','default:bigint',0,0,NULL);
 REPLACE INTO `table_regex` VALUES ('images','lba_high','int','redirect','default:bigint',0,0,NULL);
 REPLACE INTO `table_regex` VALUES ('images','lba_size','int','redirect','default:int',0,0,NULL);
diff --git a/sql/updates/4/391 b/sql/updates/4/391
new file mode 100644
index 0000000000000000000000000000000000000000..4ae77d09a6c6061e0c6b214cbd3835d91b96f7fd
--- /dev/null
+++ b/sql/updates/4/391
@@ -0,0 +1,25 @@
+#
+# Image state info for tracking size of image.
+#
+use strict;
+use libdb;
+
+sub DoUpdate($$$)
+{
+    my ($dbhandle, $dbname, $version) = @_;
+
+    if (!DBSlotExists("images", "size")) {
+	DBQueryFatal("ALTER TABLE images ADD ".
+		     "`size` bigint unsigned NOT NULL default '0' ".
+		     "   AFTER hash");
+
+	DBQueryFatal("REPLACE INTO table_regex VALUES ".
+		     "('images','size','int','redirect',".
+		     "'default:bigint',0,0,NULL)");
+    }
+    return 0;
+}
+
+# Local Variables:
+# mode:perl
+# End: