diff --git a/apps/opencs/model/world/refidadapterimp.cpp b/apps/opencs/model/world/refidadapterimp.cpp
index 57e868aa6..ecd6ff7a6 100644
--- a/apps/opencs/model/world/refidadapterimp.cpp
+++ b/apps/opencs/model/world/refidadapterimp.cpp
@@ -170,4 +170,54 @@ void CSMWorld::ClothingRefIdAdapter::setData (const RefIdColumn *column, RefIdDa
         record.get().mData.mType = value.toInt();
     else
         EnchantableRefIdAdapter<ESM::Clothing>::setData (column, data, index, value);
+}
+
+CSMWorld::ContainerRefIdAdapter::ContainerRefIdAdapter (const NameColumns& columns,
+    const RefIdColumn *weight, const RefIdColumn *organic, const RefIdColumn *respawn)
+: NameRefIdAdapter<ESM::Container> (UniversalId::Type_Container, columns), mWeight (weight),
+  mOrganic (organic), mRespawn (respawn)
+{}
+
+QVariant CSMWorld::ContainerRefIdAdapter::getData (const RefIdColumn *column, const RefIdData& data,
+    int index) const
+{
+    const Record<ESM::Container>& record = static_cast<const Record<ESM::Container>&> (
+        data.getRecord (RefIdData::LocalIndex (index, UniversalId::Type_Container)));
+
+    if (column==mWeight)
+        return record.get().mWeight;
+
+    if (column==mOrganic)
+        return (record.get().mFlags & ESM::Container::Organic)!=0;
+
+    if (column==mRespawn)
+        return (record.get().mFlags & ESM::Container::Respawn)!=0;
+
+    return NameRefIdAdapter<ESM::Container>::getData (column, data, index);
+}
+
+void CSMWorld::ContainerRefIdAdapter::setData (const RefIdColumn *column, RefIdData& data, int index,
+    const QVariant& value) const
+{
+    Record<ESM::Container>& record = static_cast<Record<ESM::Container>&> (
+        data.getRecord (RefIdData::LocalIndex (index, UniversalId::Type_Container)));
+
+    if (column==mWeight)
+        record.get().mWeight = value.toFloat();
+    else if (column==mOrganic)
+    {
+        if (value.toInt())
+            record.get().mFlags |= ESM::Container::Organic;
+        else
+            record.get().mFlags &= ~ESM::Container::Organic;
+    }
+    else if (column==mRespawn)
+    {
+        if (value.toInt())
+            record.get().mFlags |= ESM::Container::Respawn;
+        else
+            record.get().mFlags &= ~ESM::Container::Respawn;
+    }
+    else
+        NameRefIdAdapter<ESM::Container>::setData (column, data, index, value);
 }
\ No newline at end of file
diff --git a/apps/opencs/model/world/refidadapterimp.hpp b/apps/opencs/model/world/refidadapterimp.hpp
index fb015b7e1..681892165 100644
--- a/apps/opencs/model/world/refidadapterimp.hpp
+++ b/apps/opencs/model/world/refidadapterimp.hpp
@@ -596,6 +596,26 @@ namespace CSMWorld
                 const QVariant& value) const;
             ///< If the data type does not match an exception is thrown.
     };
+
+    class ContainerRefIdAdapter : public NameRefIdAdapter<ESM::Container>
+    {
+            const RefIdColumn *mWeight;
+            const RefIdColumn *mOrganic;
+            const RefIdColumn *mRespawn;
+
+        public:
+
+            ContainerRefIdAdapter (const NameColumns& columns, const RefIdColumn *weight,
+                const RefIdColumn *organic, const RefIdColumn *respawn);
+
+            virtual QVariant getData (const RefIdColumn *column, const RefIdData& data, int index)
+                const;
+
+            virtual void setData (const RefIdColumn *column, RefIdData& data, int index,
+                const QVariant& value) const;
+            ///< If the data type does not match an exception is thrown.
+
+    };
 }
 
 #endif
diff --git a/apps/opencs/model/world/refidcollection.cpp b/apps/opencs/model/world/refidcollection.cpp
index 8c9e19957..e26f1dcf5 100644
--- a/apps/opencs/model/world/refidcollection.cpp
+++ b/apps/opencs/model/world/refidcollection.cpp
@@ -151,6 +151,15 @@ CSMWorld::RefIdCollection::RefIdCollection()
     mColumns.push_back (RefIdColumn ("Clothing Type", ColumnBase::Display_ClothingType));
     const RefIdColumn *clothingType = &mColumns.back();
 
+    mColumns.push_back (RefIdColumn ("Weight Capacity", ColumnBase::Display_Float));
+    const RefIdColumn *weightCapacity = &mColumns.back();
+
+    mColumns.push_back (RefIdColumn ("Organic Container", ColumnBase::Display_Boolean));
+    const RefIdColumn *organic = &mColumns.back();
+
+    mColumns.push_back (RefIdColumn ("Respawn", ColumnBase::Display_Boolean));
+    const RefIdColumn *respawn = &mColumns.back();
+
     mAdapters.insert (std::make_pair (UniversalId::Type_Activator,
         new NameRefIdAdapter<ESM::Activator> (UniversalId::Type_Activator, nameColumns)));
     mAdapters.insert (std::make_pair (UniversalId::Type_Potion,
@@ -164,7 +173,7 @@ CSMWorld::RefIdCollection::RefIdCollection()
     mAdapters.insert (std::make_pair (UniversalId::Type_Clothing,
         new ClothingRefIdAdapter (enchantableColumns, clothingType)));
     mAdapters.insert (std::make_pair (UniversalId::Type_Container,
-        new NameRefIdAdapter<ESM::Container> (UniversalId::Type_Container, nameColumns)));
+        new ContainerRefIdAdapter (nameColumns, weightCapacity, organic, respawn)));
     mAdapters.insert (std::make_pair (UniversalId::Type_Creature,
         new ActorRefIdAdapter<ESM::Creature> (UniversalId::Type_Creature, actorsColumns)));
     mAdapters.insert (std::make_pair (UniversalId::Type_Door,