diff --git a/std/thing/language.c b/std/thing/language.c
index c9c4aba..9e0a0a6 100644
--- a/std/thing/language.c
+++ b/std/thing/language.c
@@ -69,7 +69,7 @@
 }
 
 // Artikel bestimmen
-varargs string QueryArticle(int casus, int dem, int force)
+public varargs string QueryArticle(int casus, int dem, int force)
 {
   // Kein Artikel
   if (!force &&!(QueryProp(P_ARTICLE))) return "";
@@ -93,7 +93,7 @@
 }
 
 // Possessivpronomen bestimmen
-varargs string QueryPossPronoun(mixed what, int casus, int number)
+public varargs string QueryPossPronoun(mixed what, int casus, int number)
 {
   int gen2;
 
@@ -108,7 +108,7 @@
 }
 
 // Pronomen bestimmen nach KNG
-varargs string QueryPronoun(int casus)
+public varargs string QueryPronoun(int casus)
 {
   int gender;
 
@@ -138,7 +138,7 @@
 }
 
 // Anrede fuer Spieler bestimmen
-varargs string QueryDu(int casus,int gender,int zahl)
+public varargs string QueryDu(int casus,int gender,int zahl)
 {
   return
     ({ ({({    "du",   "ihr"}),({    "du",   "ihr"}),({    "du",   "ihr"})}),
@@ -149,7 +149,7 @@
 }
 
 // Welches Geschlecht hat das Objekt als String?
-string QueryGenderString()
+public string QueryGenderString()
 {
   switch( (int)QueryProp( P_GENDER ))
   {
@@ -161,7 +161,7 @@
 
 // Artikel durchdeklinieren nach Kasus, Numerus, Genus und Art
 // des Artikels (demon==bestimmt)
-varargs string DeclAdj(string|string* adj, int casus, int demon)
+public varargs string DeclAdj(string|string* adj, int casus, int demon)
 {
 	// Unregelmaessige Adjektive
 	if( pointerp(adj) ) return adj[casus]+" ";
diff --git a/std/thing/light.c b/std/thing/light.c
index d02f579..bd6f9b6 100644
--- a/std/thing/light.c
+++ b/std/thing/light.c
@@ -66,7 +66,7 @@
 //                       ##############
 
 // Lichttypen pruefen
-varargs int CheckLightType(int lighttype, int mode)
+public varargs int CheckLightType(int lighttype, int mode)
 {
   int my_light_type = QueryProp(P_LIGHT_TYPE);
 
diff --git a/std/thing/moving.c b/std/thing/moving.c
index 780ac41..26d0240 100644
--- a/std/thing/moving.c
+++ b/std/thing/moving.c
@@ -70,7 +70,7 @@
 protected void NotifyMove(object dest, object oldenv, int method) {
 }
 
-varargs int move( object|string dest, int method )
+public varargs int move( object|string dest, int method )
 {
   object oldenv;
   int tmp;
@@ -172,8 +172,8 @@
 }
 
 // Das Objekt zerstoeren
-varargs int remove(int silent)
-{ 
+public varargs int remove(int silent)
+{
     if (environment() ) {
         if(QueryProp(P_SENSITIVE))
                 environment()->RemoveSensitiveObject(this_object());
