diff --git a/std/container/description.c b/std/container/description.c
index a299a89..ef36d49 100644
--- a/std/container/description.c
+++ b/std/container/description.c
@@ -20,7 +20,7 @@
 #include <wizlevels.h>
 
 
-void create()
+protected void create()
 {
   ::create();
   SetProp(P_TRANSPARENT, 1);
@@ -86,7 +86,7 @@
 
 // flags: 1 - return array, 2 - don't collect equal objects '
 // flags: 4 - don't append infos for wizards
-varargs mixed make_invlist(object viewer, mixed inv, int flags)
+visible varargs mixed make_invlist(object viewer, mixed inv, int flags)
 {
   int iswiz;
   mixed objs, info;
diff --git a/std/container/restrictions.c b/std/container/restrictions.c
index 91339cb..1095b85 100644
--- a/std/container/restrictions.c
+++ b/std/container/restrictions.c
@@ -42,7 +42,7 @@
 private nosave int last_content_change;
 
 
-void create()
+protected void create()
 {
     Set( P_WEIGHT_PERCENT, 50 );
     Set( P_TOTAL_WEIGHT, NOSETMETHOD, F_SET_METHOD );
@@ -108,7 +108,7 @@
 
 
 // diese Funktion sollte von Raeumen natuerlich ueberschrieben werden...
-int MayAddObject( object ob )
+public int MayAddObject( object ob )
 {
     if (ob) {
         if ( !ob->short() )
@@ -125,7 +125,7 @@
 #define ENV environment
 #define PO previous_object()
 
-int MayAddWeight( int w )
+public int MayAddWeight( int w )
 {
     int nw, aw;
 
@@ -205,7 +205,7 @@
 #define POS_INVERS   0x01  /* nur zur funktionsinternen Verwendung */
 #define POS_LETZTES  0x02  /* nur zur funktionsinternen Verwendung */
 
-object *present_objects( string complex_desc )
+public object *present_objects( string complex_desc )
 {
     int i;          // Zaehlervariable
     int meth;       // 0x01 = invers?,  0x02 = letztes?
@@ -464,7 +464,7 @@
  * Funktion wird nicht mehr von put_and_get aufgerufen, stattdessen wird
  * direkt present_objects benutzt!
  */ 
-object *locate_objects( string complex_desc, int info ) {
+public object *locate_objects( string complex_desc, int info ) {
     string was, wo;
 
     if ( sscanf( complex_desc, "%s in %s", was, wo ) == 2 ){
