Rubrik offen (Silvana, 21. Aug 1995, 13:11:32):
Ich wollte nur anmerken, dass diese Rubrik ab sofort auf zahlreichen
Wusch - besonders einer einzelnen Dame (na, ja...;) ) - eingerichtet
wurde. (argl - Wunsch sollte das heissen.)
Silvana

-----------------------------------------------------------------------------



JAAAAAAAAAAAAAAAA (Rudiratter, 21. Aug 1995, 13:15:09):
Oh dankedankedanke, endlich meine Rubrik!!
Naechste Woche wird's aktuell, dann poste ich dann hier mal meine
'Urlaubsadresse'
Tschoe
Rudi

-----------------------------------------------------------------------------



Re: JAAAAAAAAAAAAAAAA (Grimmborn, 21. Aug 1995, 14:30:35):
#! rn=Rudiratter rt=809003709

Tja, wenn einem kein Titel einfaellt, macht man reply...
Ist diese Rubrik (wie magier.urlaub) auch von jedem lesbar? Oder nur von
Sehern?

Grimmborn der Atheist, zu faul, seinen Testie auszupacken.

-----------------------------------------------------------------------------



Bambulko ist in Oesterreich!! (Bambulko, 21. Aug 1995, 18:49:28):
Naja wenn es jetzt so ne Rubrik gibt, kann ich sie ja gleich mal gebrauchen.
Ich bin jetzt ein bis zwei wochen in Oesterreich..(leider nicht in der naehe
eines Internet-Anschlusses :( ).
Bambulko

-----------------------------------------------------------------------------



cuchullin.weisheitszahn (Cuchullin, 23. Aug 1995, 14:23:10):



AETSCH!!!!!
Ich bin schon wieder da.
Es gab (*Puh*) keinerlei Komplikationen, die ueblichen Schmerzen in der
Mundhoehle und im Hals (Anaestesie), sowie die Fehlversuche beim an'tropf'en
sind natuerlich aergerlich, aber ansonsten gehts mir gut. Haette wesentlich
schlimmer kommen koennen, meinte die Chirurgin.

Nix mehr gegen zarte Frauenhaende sagend,

Cuch.-

PS: Najaaaaaa, Frauen koennen auch einschlaefernd wirken - muss ich noch
sagen, dass der Narkose-Arzt weiblich war? *laechel*



-----------------------------------------------------------------------------



Urlaub? (Rudiratter, 24. Aug 1995, 14:41:33):
Urlaub -naja, ich weiss nicht. Jedenfalls bin ich ab naechstem Dienstag fuer
mindestens vier Wochen weg -eingesperrt sozusagen. Wer sich melden will, kann
ja mal rumfragen, ein paar Leute kennen die Adresse.
Macht's gut!
Rudi

-----------------------------------------------------------------------------



RYNE -->> RAUS! (Ryne, 25. Aug 1995, 10:21:53):
Hiho, hiho!

Da auch Kampfzwerge zwischendurch regenerieren muessen (im Gegensatz zu den
koerperlich wenig belastbaren Elfen und Menschen jedoch nur kurz), melde ich
mich erstmal fuer 2 Wochen ab. Wenns nach mir ginge, waere ich dageblieben,
aber mein Arzt warnte mich davor, dass die ewige Dunkelheit in
Schreckensspitze und Zzerrenzen nicht das Beste fuer meine Augen seien.
Schweren Herzens muss ich deshalb mal pausieren, und lege mich an irgendeinen
Strand, wo ich mir die Zeit mit dem Graben nach Glod vertreiben werde.

Oki, dann habt mal alle viel Spass in naechster Zeit, und bis bald !!

RYNE


-----------------------------------------------------------------------------



Urlaub (Acrimon, 25. Aug 1995, 23:09:11):
Auch ich bekomme 2 Wochen Urlaub verordnet.
Morgen (Samstag) in der Frueh gehts los in die Dolomiten!
Auf dem Mendelpasz bekomme ich Unterkunft.

Ihr mueszt also ganze zwei Wochen lang auf mich verzichten!

Acrimon, freut sich schon

-----------------------------------------------------------------------------



Eine Woche ohne den Knuddeldrachen..... (Ancalagon, 28. Aug 1995, 18:19:57):
Halloechen ihrs!
Wenn es diese Rubrik gibt, soll man sie auch nutzen. Also, in der zeit vom
1.9. bis 10.9. Gibts im MorgenGrauen keine Drachenknuddler, da mein RL-Ego an
einem Segeltoern in der Daenischen Suedsee (rund Fuehnen) unternimmt. 12
Personen in 2 Schiffen, das wird bestimmt total toll. Wer 'ne Postkarte haben
will, muss mir seine Adresse mailen und hoffen, dass ich genug zeit und geld
habe...
Wer die zeit nicht aushael, ohne von mir geknuddelt zu werden, sollte sich im
voraus eindecken lassen oder Semira um einen Stelvertretenden Knuddler
anhauen...
Tschuessie,
                                           Ancalagon
                                  Draco knuddellensis major

-----------------------------------------------------------------------------



Re: Eine Woche ohne den Knuddeldrachen..... (Caradhras, 28. Aug 1995, 20:54:17):
#! rn=Ancalagon rt=809626797
.... apropos Drache... und noch eine Woche ohne den Golddrachen, denn
ab uebermorgen bin ich auch erst mal fuer hmpf humm gruebel, mindestens
7 Tage bis 10 Tage nicht da.
Aber noch bin ich ja da, also nicht verzweifeln auf der Wasserebene.
   *:^)

     tschoe       Caradhras der ewige Prophet

-----------------------------------------------------------------------------



Re: Re: Eine Woche ohne den Knuddeldrachen..... (Zephyr, 28. Aug 1995, 20:57:36):
#! rn=Caradhras rt=809636057
Apropos Gold... der Goldspatz wird zum Zugvogel
und verknuddelt sich fuer zwei Wochen in den warmen Sueden
nach Malta. Bei Bedarf ist noch ein Vorrat an Trockenknuddels
oder Knuddels zum Anruehren zu verteilen :)

Zeph, geniesst ihren Urlaub aber freut sich
      trotzdem schon auf ein Wiederknuddeln :)

-----------------------------------------------------------------------------



Re^3: Eine Woche ohne den Knuddeldrachen..... (Tasha, 28. Aug 1995, 23:40:35):
#! rn=Zephyr rt=809636256
Da man Zephyr nicht alleine lassen kann weil sie moeglicherweise alle
Malteser plaetten wuerde und dann nie mehr zurueck kaeme beame ich mich
hinterher und passe auf sie auf. :))

winkend, Tasha

-----------------------------------------------------------------------------



Urlaub? Naja. (Hardil, 29. Aug 1995, 13:02:49):

Ichweiss nicht, ob man es Urlaub nennen kann, aber wenn sich hier alle schon
abmelden:
Von Freitag bis etwa Mittwoch bin ich in der schoenen Pfalz. Und den
umliegenden Landschaften. back to the roots quasi.
Wie sagte doch so schoen ein deutscher Dichter:

Wieso in die Ferne reisen, sieh, das Glueck liegt doch so nah...

-Hardil :)

-----------------------------------------------------------------------------



Auch weg, aber kein Urlaub :( (Dwight, 30. Aug 1995, 02:07:48):
Holla

Tja, wird wohl nicht viele interessieren, aber falls ich es jemandem nicht
persoenlich erzaehlt hab, hier eine Ankuendigung:

Heute ist fuer einige Zeit mein letzter Tag im Morgengrauen, meine Bank
besteht darauf, dass ich mal Geld ranschaffe.
Da ich zu Hause kein Internetanschluss habe, und das telefonieren von Minden
nach Dortmund etwas teuer waere, und dem sinn der Sache somit zuwieder laufen
wuerde, muss ich wohl auf euch verzichten :(

Vielleicht laesst sich ja was machen, aber ich fuerchte nicht, evtl. schau
ich am WE mal rein.

Also, machts gut, ich werde das hier sehr vermissen.

Bis hoffentlich bald.

          Dwight (mit nicht nur einer Traene im Auge)

-----------------------------------------------------------------------------



Leserechte (Grimmborn, 30. Aug 1995, 12:53:20):

Wie waers mal mit Konsistenz? Spieler koennen magier.urlaub lesen,
seher.urlaub aber nicht. Also, da fuehl ich mich als Magier doch glatt
abgewertet... ;-)

Grimmborn der Atheist. Will Spielern die Seherurlaube zugaenglich gemacht
haben.

-----------------------------------------------------------------------------



Weg (Anakin, 10. Sep 1995, 23:23:03):
Hiho,

Fuer alle die es interessiert, ich werd wohl (hoff ich) etwas
weniger mudden in naechster Zeit. Ist ja schon zur Sicht geworden,
seit einem Jahr verbring ich mein Haupteil meiner Zeit in diesem
Mud. Vielleicht werd ich auch Magier um nicht rueckfaellig zu
werden. Erstmal ein bisschen Pause und dann weitersehen.
Hat wirklich Spass gemacht hier zu spielen. Wenn ich eingeloggt
bin dann nur aus Versehen ;).

So long
          Anakin.

-----------------------------------------------------------------------------



Jim diGriz beamt sich weg :( (Jimdigriz, 18. Sep 1995, 14:02:59):
Hiho !

Zur Fortsetzung meines Studiums reise ich nach Edinburgh,
Schottland. Ich weiss leider noch nicht, wie meine Internet-
Connectivity dort aussieht. Moeglicherweise wird es eine Weile
dauern bis ich mich wieder hier sehen lassen werde. Da ich am
Montag wegbeame, hab ich auch diese Woche kaum noch Zeit fuers MG.
Ich hoffe wir sehen uns bald wieder ;-))

cu all, and stay cool checkerdudes & dudesses :)

 James Bolivar diGriz, die Edelstahlratte.

-----------------------------------------------------------------------------



Kein richtiger Urlaub (Quengistu, 20. Sep 1995, 00:38:09):
Huhu,
Vom 27.9. bis ca. 4.10. wird meine Wenigkeit noch seltener als sonst hier
sein, naemlich gar nicht. Stattdessen bin ich in Berlin anzutreffen, wo ich
mich bei Patenonkel und -tante durchfuttern werde.
Falls in der Woche in Berlin ein MorgenGrauen-Stammtisch stattfindet, waere
es nett, wenn mir das vorher jemand mailen koennte.
Viele Gruesse,
   Quengistu

-----------------------------------------------------------------------------



ne ganze weile weg ... (Skipper, 21. Sep 1995, 19:33:48):
Hi,

ich werde 4 Wochen pausieren. Griechenland, davon 2 Wochen segeln ;)
Viel Spass beim mudden und bis bald

SKIPPER

-----------------------------------------------------------------------------



...und weg... (Augra, 24. Sep 1995, 19:51:31):
Hi, endlich mal Urlaub, eine Woche nur am Waser langlaufen und an seeeeehr
wenig denken....une Etah nehm ich mit:).

Augra

-----------------------------------------------------------------------------



Urlaub (Aell,  2. Okt 1995, 06:24:12):
  Oder so.

  Jedenfalls bin ich in naechster Zeit nicht zu meinen ueblichen
Zeiten verfuegbar, sondern wann auch immer man mich laesst, und
das ist ungewiss -- ich bin naemlich ob schlechtbezahlten un-
freiwilligen Bundesdienstes die naechsten elf Monate nur be-
dingt verfuegbar...

    Aell


-----------------------------------------------------------------------------



Re: Urlaub (Aell,  2. Okt 1995, 15:42:27):
#! rn=Aell rt=812611452
  Allerdings, wenn es so weitergeht, wie sich der erste Tag anfuehlt,
dann bin ich spaetestens in zwei Wochen entweder als Gemuese oder als
Nervenbuendel in der Psychiatrie zu finden...

-----------------------------------------------------------------------------



Lobenswert (Tasha, 15. Dez 1995, 16:13:56):
Hi!

Anlaesslich der Tatsache, dass diese Rubrik vollkommen leer war, moechte ich
mal allen Sehern dazu gratulieren, dass sie so fleissig bei der Arbeit sind
und nicht im Urlaub rumfaulenzen.

Gratulation, Tasha

P.S.: Nein, dieser Artikel hat keinen Sinn. :)

-----------------------------------------------------------------------------



Urlaub (Aline, 15. Dez 1995, 16:21:00):
Hi,

so fuer alle Fans meiner Emanzensprueche und zur Freude der anderen,
kuendige ich hiermit meinen Urlaub an. ;)

Also da ich zwischen Weihnachten und Neujahr nicht arbeite, sitze ich
auch nicht mehr an einem vernetzten Rechner und geniesse die Zeit ohne MG.
*zitter* *bibber* *habvolldieEntzugserscheinungen*

Aline

P.S.:Freut Euch nicht zu frueh!! In der 1. Januar-Woche komme ich wieder! ;)

-----------------------------------------------------------------------------



Re: Urlaub (Asmodis, 15. Dez 1995, 16:24:25):
#! rn=Aline rt=819040860
Ich werde zwischen dem 24.12.95 und dem 1.1.96 wohl auch nicht an einen
Rechner kommen.
Irgendwann muss man ja mal Urlaub machen :)

-----------------------------------------------------------------------------



Kein Urlaub (Isnogood, 15. Dez 1995, 23:45:37):
Ich werde in der Zeit vom 24.12 bis 31.12 definitiv keinen Urlaub machen.
Dafuer werde ich mich vom 3.1 bis 8.1 mit Inesha in die Flitterwochen begeben.
Isno

-----------------------------------------------------------------------------



Re: Kein Urlaub (Jimdigriz, 18. Dez 1995, 14:28:30):
#! rn=Isnogood rt=819067537
Ich schon,

leider sogar vom 21.12. bis vermutlich 2.1.

Frohes Fescht !

James Bolivar diGriz.

-----------------------------------------------------------------------------



Me too. (Cuchullin, 18. Dez 1995, 14:35:32):

find_seer("cuchullin")->move("/d/wild_south/schwaben/dahoim.c",M_GO)

         Und zwar ab uebermorgen oder den Tag darauf
         Bis zum 7.1.neunzehnhundertsechsundneunzig *aechz*

Geniesst die Zeit, ich kann's vermutlich nicht...
Cuch.-


-----------------------------------------------------------------------------



Re: Me too. (Caradhras, 18. Dez 1995, 15:31:33):
#! rn=Cuchullin rt=819293732
seher.nichturlaub:

Vermutlich ab uebermorgen bis keine.ahnung.1996
Evtl sogar bis 10ter Januar.

       Wuenscht allen schoene Weihnacht und vor allem seinem
       Freund, dem Sensi, guten Rutsch

            Caradhras I von und zu SSP

-----------------------------------------------------------------------------



Unfreiwilliger Urlaub (Acrimon, 19. Jan 1996, 07:50:09):
Also, nachtraeglich melde ich noch meinen unfreiwilligen "Urlaub",
der Grund warum ich die letzten 2 Wochen nicht anzutreffen war:

Ich bin am 3. Januar auf dem Glatteis ausgerutscht und so ungeschickt
gefallen, dasz ich mir eine "linksseitige Beckenringfraktur" zugezogen habe,
auf deutsch: Ich habe mir zwei kleinere Knochen des Beckens gebrochen.
Gestern bin ich aus dem Krankenhaus entlassen worden.

Acrimon, der Rote Ritter

-----------------------------------------------------------------------------



Hm (Caradhras, 28. Jan 1996, 14:43:32):
Ich mach nochmal 5 Tage Spielpause. (mind.) Wird zwar kein Urlaub, aber
watt solls. :)
Bin noch in AL erreichbar.

        Und tschuess
  Caradhras - nimmt Celebdil, Fanuidhol, Mindolluin und Methedras auch
             gleich mit

-----------------------------------------------------------------------------



Unbekannte Zeit nicht da. (Khidar,  1. Feb 1996, 12:03:36):
Da ich nicht mit der gegenwaertig geltenden Scriptdefinition spielen moechte,
bin ich auf unbestimmte Zeit weg. Gelegentlich werde ich in der Zeitung
verfolgen, was sich nun so entwickelt hat.
Ich bin im GL und evtl. im TAPP oder WL zu finden (erstmal sehen).

Khidar (kann sich grade noch beherrschen, nicht zu lose Bemerkungen von sich
zu geben.)

-----------------------------------------------------------------------------



Re: Unbekannte Zeit nicht da. (Ryne,  1. Feb 1996, 13:02:16):
~#! rn=Khidar rt=823172616
~#! tid=823172616
Oh ja...

wenn wir jetzt alle beleidigte Leberwuerste spielen, ob dann die Magier wohl
wieder alle scripts erlauben werden ?

Aus Solidaritaet schliesse ich jetzt mal erstmal mein Seherhaus ab. Als ganz
dicke dicke Strafe fuer die boesen boesen Magier weil ich scripten scripten
scripten will...


Ryne, lacht sich nen Ast ob solcher Protestaktionen.

-----------------------------------------------------------------------------



Re: Re: Unbekannte Zeit nicht da. (Wargon,  1. Feb 1996, 13:03:41):
~#! rn=Ryne rt=823176136
~#! tid=823172616
  He!
Und was sollen die armen ZT-suchenden Spieler jetzt machen, wenn sie nicht in
Dein Haus kommen?
  Tststs,
    Wargon

-----------------------------------------------------------------------------



Re^3: Unbekannte Zeit nicht da. (Frado,  1. Feb 1996, 13:06:05):
~#! rn=Wargon rt=823176221
~#! tid=823172616
Das ist ja das gemeine an der Strafe! - Und ihr Magier steht vor dem Dilemma,
dass die Spieler diesen ZT nicht kriegen koennen! Mal sehen wer laenger
durchhaelt - ich habe alle meine ZTs!!!!

Ryne

-----------------------------------------------------------------------------



Re: Re: Unbekannte Zeit nicht da. (Tasha,  1. Feb 1996, 14:02:35):
~#! rn=Ryne rt=823176136
~#! tid=823172616
Auf die Gefahr hin, selber nieveaulos zu werden: Schreib doch bitte
demnaechst nur noch Artikel, wenn Du irgendwas zu sagen hast. Solcher
Bloedsinn wie Du ihn hier verzapfst traegt naemlich nichts zur Loesung
irgendeines Problems bei.

Tasha

-----------------------------------------------------------------------------



Re^3: Unbekannte Zeit nicht da. (Bambulko,  1. Feb 1996, 14:26:33):
~#! rn=Wargon rt=823176221
~#! tid=823172616
Hey war das nicht gerade Spielerhilfe?
Loescht sofort Wargon!

Bambulko

-----------------------------------------------------------------------------



Re^4: Unbekannte Zeit nicht da. (Grimmborn,  1. Feb 1996, 17:11:00):
~#! rn=Bambulko rt=823181193
~#! tid=823172616

Wieso Wargon loeschen?
Soweit ich das gesehen habe steht auf scripten die Loeschstrafe, nicht auf
helfen.
Oder hat Wargon per script den Artikel in die mpa gesetzt?

Grimmborn der Atheist. Tippt noch mit der Hand.

-----------------------------------------------------------------------------



Re^5: Unbekannte Zeit nicht da. (Bambulko,  1. Feb 1996, 17:48:07):
~#! rn=Grimmborn rt=823191060
~#! tid=823172616
Weiss nicht, ich haette Wargon mal snoopen muessen, aber das kann ich als
kleiner Popelsmagier ja leider nicht.

Bambulko

-----------------------------------------------------------------------------



Re^3: Unbekannte Zeit nicht da. (Ryne,  1. Feb 1996, 18:10:44):
~#! rn=Tasha rt=823179755
~#! tid=823172616
Tasha, fuehl Dich geknuddelt, wenn Du magst.

Aber wenn Khidar in dem Moment, wo Skripte verboten werden, erstmal seinen
Abschied ankuendigt, kann ich mir ein gewisses grinsen und einen kleinen Bezug
zu einer aehnlich laecherlichen Aktion bei einem anderen Anlass meinerseits
(eben mit dem Seherhaus) nicht verkneifen. Und ob Du das dann
aussergewoehnlich konstruktiv findest, geht mir wirklich nicht ab.

Ryne. Schreibt unnoetige replies nur bei interessanten Themen.

inherit std/article/ryne/extralong/--mehr(2%)--

-----------------------------------------------------------------------------



Re^4: Unbekannte Zeit nicht da. (Fyt,  1. Feb 1996, 18:24:19):
~#! rn=Ryne rt=823194644
~#! tid=823172616

Naja, Khidar hatte sich das schon reiflich ueberlegt, seit dem
Wochenende war naemlich so ungefaehr klar, was kommen wuerde.

Es war also *kein* Schnellschuss.

Fyt.

-----------------------------------------------------------------------------



Ich mache mich rar..... (Ancalagon,  7. Feb 1996, 17:21:03):
Moin erstmal!
Tja, seit heute gehoere ich mal wieder zur arbeitenden Bevoelkerung. Das
heisst, ich werde seltener anwesend sein. Hoechstens mal nachmittags, so ein-
zweimal in der Woche.
Knuddelsuechtige werden dann nach Ostern entschaedigt werden...
Tschuessie,
                                                    Ancalagon
                                           Draco knuddellensis major

-----------------------------------------------------------------------------



Re^3: Unbekannte Zeit nicht da. (Jof,  9. Feb 1996, 17:54:27):
~#! rn=Tasha rt=823179755
~#! tid=823172616

 So ein Bloedsinn wie: Ich bin beleidigt und spiele nicht mehr hier, wenn
ich nicht scripten kann, traegt aber auch zu keinerlei Problemloesungen bei
und faellt m.E. in die Rubrik: Dinge, die niemanden interessieren, die aber
jemand posten wollte ...

 jof

-----------------------------------------------------------------------------



Re^4: Unbekannte Zeit nicht da. (Fyt, 11. Feb 1996, 16:30:50):
~#! rn=Jof rt=823884867
~#! tid=823172616

Nicht ganz, Jof. Das staerkt naemlich den Leuten den Ruecken, die
sich mit aehnlichen Abscihten tragen. Natuerlich reisst es die
Friede-Freude-Eierkuchen-Stimmung, die manche Leute hier sehen
wollen auf... Ich fuer meinen Teil kann jedenfalls mit derartigen
Artikeln leben, die Aussage 'interessiert niemand' kann ich nicht
so stehen lassen.

Fyt.

-----------------------------------------------------------------------------



Spielpause wg. Vordiplom (Escubar, 11. Feb 1996, 22:15:30):
Da ich am 4. und 6. Maerz VWL-Vordiplom schreiben muss, lass ich Euch bis
dahin mal in Stich...
Werd mit Esci ab und an Zeitung lesen, eventuelle Post bitte auch an ihn.

Was ich mach wenn die Zauberergilde zwischenzeitlich kommt weiss ich noch
net, wahrscheinlich stell ich die Lernerei dann sofort ein ;)

Jo dann bis die Tage und lasst das Mud stehen und den Rechner ganz...

Euer Eisbaer Escubar


-----------------------------------------------------------------------------



Re^5: Unbekannte Zeit nicht da. (Pra, 15. Feb 1996, 13:15:03):
~#! rn=Fyt rt=824052650
~#! tid=823172616
Jau, Jof,

aender die Aussage doch bitte in: 'interessiert nur Fyt.'

Pra. Heute bitterboese ;-)

-----------------------------------------------------------------------------



Spielpause (Caradhras, 19. Feb 1996, 06:49:26):
21 Tage Spielpause.
Fuer Caradhras, Celebdil, Mindolluin, Fanuidhol, Methedras.

    Bin noch in AnderLand oder UNItopia erreichbar, oder email

       tschuess        Caradhras (singt: eine Insel mit zwei Bergen...)

-----------------------------------------------------------------------------



Bin erst mal weg (Mahatma,  1. Mar 1996, 07:37:32):
Hallo auch,

ich mach jetzt erst mal einen Monat zu Hause Ferien und kann deshalb erst
wieder Ende Maerz ins Mud kommen. Knuddelt mir bis dahin die Hydra nicht zu
doll, nicht dass sie Angst bekommt und nicht mehr erscheint ;)

Mahatma (hat die optimale Kampftaktik fuer das Vieh endgueltig gefunden)

-----------------------------------------------------------------------------



Praktikum (Janice,  3. Mar 1996, 22:51:29):
Hallo Leutings !
Wie mein Titel schon andeutet, fang ich mit meinem Praktikum an. Los
gehts schon morgen, das waere dann der Montag, und dauert knapp 18 Wochen.
In dieser seit werd ich leider sehr selten da sein, meist nur am WE, da
meine Praktikumsstelle leider keinen Internet-Anschluss haben (bzw. nur
die hohen Chefs haben Zugang) und E-Mail ist leider auch nicht drin :(
Ich schau aber abundzu auf meinen Uni-Account wegen mail nach, wer mir also
was mailen moechte, tut das bitte an janice@fb6.fhtw-berlin.de. Ich freu#
mich ueber jede Mail :-)
Achja, wenn die Nachklausuren vorbei sind, schau ich auch mal abends uebers
Modem rein :)

Fuehlt euch geknuddelt und gewuschelt !!
Janice wurde vom RL eingeholt *zitter*

-----------------------------------------------------------------------------



Skifahrn :) (Escubar,  9. Mar 1996, 01:17:43):
Bin von heute 5:00 an bis Nachste Woche Sonntag beim Skifahren in Obertauern
:)

Zieht mir bitte in der Zauberergilde nicht zu weit davon (gell Arty ;)

Eisbaer Escubar freut sich auf die Kaelte

-----------------------------------------------------------------------------



Wech (Caradhras, 28. Mar 1996, 05:29:39):
Spielpause 21 Tage, natuerlich kein Urlaub.

Mit Caradhras, Celebdil, Fanuidhol, Mindolluin, Methedras

     Die fuenf Berge winken euch zu

              Adelandeyo,
Leises Rauschen dringt an Dein Ohr. Suedlich von Dir fuehrt ein Weg weiter
an dem See vorbei ueber einen Abgrund. Dort stuerzt auch ein Wasserfall in
die Tiefe. Der Weg fuehrt auch nach Nordosten weiter zu einem Bach, der
aus Richtung Norden vom grausamen Caradhras heruntergeflossen kommt.
Ein schmaler Pfad fuehrt nach Nordwesten in die Hoehe. Du kannst nicht
erkennen, wo er danach hinfuehrt. Er verschwindet in den Huegeln ueber
dem Tal suedlich, ueber das Du von hier eine gute Aussicht hast. Nach
Suedosten und Osten geht es in einen See. Hinter dem See liegt die riesige
Silberzinne, Celebdil genannt. Auch vermeinst Du, vor seiner Bergflanke
einen Weg verlaufen zu sehen.

-----------------------------------------------------------------------------



Und wech... (Chicola, 28. Mar 1996, 10:36:05):

Nachdem ich nun alles fuer den 7. Dan zusammen habe (bis auf 90 stunden
online *fluch) verdufte ich mal ein Weilchen. Ich werde mich ein wenig in
England, Wales und eventuell Schottland umsehen. Also sagt bitte der IRA
Bescheid :)
Lasst das MG nicht verkommen und achtet darauf, dass die Stimmung nicht noch
weiter absackt.
Bis zum 22.April          Chicola

-----------------------------------------------------------------------------



Nachtrag (Chicola, 28. Mar 1996, 10:37:19):
Achja :) und seid NETT zu einander und den armen NPCs :)

-----------------------------------------------------------------------------



Re: Nachtrag (Morgoth, 28. Mar 1996, 10:40:21):
~#! rn=Chicola rt=828005839
~#! tid=828005839
meine npcs sollen nett sein ???
-> schmarrn

-----------------------------------------------------------------------------



Re: Re: Nachtrag (Mupfel, 29. Mar 1996, 16:27:10):
~#! rn=Morgoth rt=828006021
~#! tid=828005839
Klar, fueg halt bei allen "er laechelt" ans Ende der Beschreibung ein.

-----------------------------------------------------------------------------



UnfreiwilligerUrlaub... (Har,  6. Apr 1996, 17:34:54):
Tja, da ich nun endlich meinen Eilanatrag nach 12 Wochen bearbeitet bekomen
habe, werde ich mich ab naechsten Mittwoch zu einem 4 woechigem Zwangsurlaub
in einer Reahklinik in Bad Ems einfinden. Die sind da medizinisch sehr gut
ausgestattet, aber die internetmaessige Anbindung laesst wohl noch zu
wuenschen uebirg....
Bis dann also...

Har.


-----------------------------------------------------------------------------



Studium (Anatol, 15. Apr 1996, 12:50:44):
Ich werde wohl etwas seltener da sein.
Anatol

-----------------------------------------------------------------------------



Re: Studium (Anakin, 15. Apr 1996, 13:28:45):
~#! rn=Anatol rt=829565444
~#! tid=829565444
Haha ? :)

Anakin.

-----------------------------------------------------------------------------



Kein Urlaub (Jimdigriz, 18. Apr 1996, 22:11:04):
.. sondern leider viel Arbeit hab ich grade :(((
Deshalb bleibt mir kaum Zeit fuer MG, das sollte sich am
10.5. gelegt haben, da is naemlich die Porject deadline ;)

Project nicht Porject sollte das heissen ;)

aeh ja ... also ich bin hin und wieder da zum newslesen
mag jmd fuer mich karateue.... aeh ;-) *blubber* nix, vergesst es ;-)

Ciao,
 Shukokai Karateka JimDiGriz.

-----------------------------------------------------------------------------



Back again :) (Chicola, 22. Apr 1996, 08:37:42):

Siehe Oben :)

Chicola :))) uebt immer noch Karate :(

-----------------------------------------------------------------------------



Urlaub (Skipper, 25. Apr 1996, 23:35:51):
Moin Ihr's,

ich bin 3 Wochen segeln ...

Viel Spass und bis bald

Skipper

-----------------------------------------------------------------------------



Re: Urlaub (Orktoeter, 26. Apr 1996, 14:18:23):
~#! rn=Skipper rt=830468151
~#! tid=830468151
Mit Handy und Laptop ist das doch kein Grund, nicht zu mudden.. :))
(PS wie willst du auf dem Boot Darten ? *grins*)
OrkT

-----------------------------------------------------------------------------



ganz kleine Pause (Siborit, 17. Mai 1996, 00:39:10):
Ok, mann kann es eigentlich kaum Urlaub nennen, aber ich wird den naechsten 10
Tage auch nicht Mudden, weil ich Magnum besuchen wird.

Hatte eigentlich nur Bock mal was in der MPA zu schreiben ;))

Ok, Ciao ich hoffe ich wird dieses 'Mud-cold-turkey' ueberleben. ;)))

Siborit ;v)

-----------------------------------------------------------------------------



Urlaub? Noe :) Trotzdem wech (Caradhras, 17. Mai 1996, 21:33:25):
Samstag, 18.05. bis Sonntag 26.05.  /bin/weg/@/home

     tschuess, schoene Woche, wuensche viele schoene Reboots :)

            Der Babygolddrache Caradhras

-----------------------------------------------------------------------------



Seufz* (Lug, 20. Mai 1996, 23:04:48):
Moin,
leider bin ich die naechsten drei Wochen weg. Wenn ich es schaffe sehe ich
nochmal naechsten Montag rein.
Gruss
Lug Samildanach

-----------------------------------------------------------------------------



auch mal weg (Alboin, 24. Mai 1996, 19:19:03):
Hoi Leuts!
Ich mach mal fuer ne Woche Urlaub.Vielleicht hab ich ihn ja sogar verdient
*grins*
Bis baldius
Alboin mit den 40 Tausendsties

-----------------------------------------------------------------------------



Re: auch mal weg (Hardil, 30. Mai 1996, 13:33:00):
~#! rn=Alboin rt=832958343
~#! tid=832958343

Auja. Mal Leute neidisch machen. :)
Bin ab Mitte Juli fuer sicherlich 8 Wochen nicht da. 1 Woche Kraxeln in .at,
dann 6 Wochen quer durch .edu und .ca . Vielleicht logge ich mich mal von
Seattle aus ein, falls ich zufaelligerweise schlaflos in Seattle sein sollte
oder so aehnlich.
Achja, Durian, falls ich Dir irgendwelche CDs mitbringen soll, vergiss nicht,
mir ne Liste mitzugeben. :)) (das kapiert jetzt wieder keiner, ausser dem
Sandmann, abbaissokee)

Kanns kaum abwarten:

			-Hardil.

-----------------------------------------------------------------------------



Re: Re: auch mal weg (Har, 30. Mai 1996, 13:42:41):
~#! rn=Hardil rt=833455980
~#! tid=832958343
Hmm, ich braeuchte zwar keine CDs aber Du koenntest mal schauen, ob die Ibanez
ATK-Bass-Serie in Seattles Musikgeschaeften billiger ist :)

Har (knapp bei Kasse)

-----------------------------------------------------------------------------



Re^3: auch mal weg (Niedecken, 30. Mai 1996, 14:34:52):
~#! rn=Har rt=833456561
~#! tid=832958343
jo, ich hab gehoert dort soll das brot ein paar cent billiger sein, bringst du
mir mal 3 4pfuender mit

thanx

-----------------------------------------------------------------------------



damit was in der mpa steht ;) (Jimdigriz, 14. Jun 1996, 18:42:04):
wen's interessiert, ich fahr' naechste woche in die highlands

JdG.

-----------------------------------------------------------------------------



Re: damit was in der mpa steht ;) (Asmodis, 14. Jun 1996, 18:47:55):
~#! rn=Jimdigriz rt=834770524
~#! tid=834770524
Behalte deinen Kopf auf den Schultern, Highlander :)

-----------------------------------------------------------------------------



Re: Re: damit was in der mpa steht ;) (Jimdigriz, 14. Jun 1996, 18:48:38):
~#! rn=Asmodis rt=834770875
~#! tid=834770524
Ich komm ja nicht aus Australien ;-))

JdG.

-----------------------------------------------------------------------------



Re^3: damit was in der mpa steht ;) (Cauno, 14. Jun 1996, 19:26:13):
~#! rn=Jimdigriz rt=834770918
~#! tid=834770524
Die erste Pointe hab ich verstanden (Highlander) aber die zweite (Australien):
haeh? bitte erklaeren.

-----------------------------------------------------------------------------



Re^4: damit was in der mpa steht ;) (Jimdigriz, 16. Jun 1996, 13:59:36):
~#! rn=Cauno rt=834773173
~#! tid=834770524
Bezog sich auf Mel Gibson und Braveheart (der angeblich wahre highlander
oder so, William Wallace)

JdG.

-----------------------------------------------------------------------------



Re^5: damit was in der mpa steht ;) (Bambulko, 17. Jun 1996, 17:28:32):
~#! rn=Jimdigriz rt=834926376
~#! tid=834770524
Ich dachte der heisst Edgar Wallace :-)

Jaja schon gut.....Bambulko

-----------------------------------------------------------------------------



Time for leaving (Lug, 21. Jul 1996, 06:14:05):
Moin,

bedingt durch die Materialaufnahme fuer meine Magisterarbeit werde ich wohl
leider fuer laengere Zeit Pause machen muessen. Drueckt mir die Daumen, dass
ich einen Zugang ans Netz finde. In dringenden Faellen bin ich ueber Symbiont
zu erreichen.

Gruss an Euch Alle!

Lug

-----------------------------------------------------------------------------



Re: Time for leaving (Symbiont, 21. Jul 1996, 19:49:24):
~#! rn=Lug rt=837922445
~#! tid=837922445
Wobei ich sicherheitshalber anmerke, dass Lug nicht mein Zweitie ist. ;)

->SYMBIONT<-

-----------------------------------------------------------------------------



Re: Re: Time for leaving (Asmodis, 22. Jul 1996, 10:52:12):
~#! rn=Symbiont rt=837971364
~#! tid=837922445
Wer's glaubt ...

-----------------------------------------------------------------------------



Damit Grimmborn nicht langweilig wird.... (Jimdigriz, 25. Jul 1996, 16:48:09):
..schreib ichs auch in die mpa,
interessieren tuts ja keinen ;)

Also ich muss ich ersma vom .de-schock erholen und fahr in Urlaub.
und zwar nach Kiel. Man sieht sich dann auf der Fete ! Ich hoffe dass sich da
nix mehr gross aendert

Stainless Steel Rat James Bolivar diGriz
,

-----------------------------------------------------------------------------



Un-Urlaub (Crolla, 31. Jul 1996, 14:27:37):
Tja, ich muss leider wieder zurueck nach England...

Ich werde zunaechst, wenn ich in London weile, weder Computer, noch Modem,
Internet-Account, Uni um die Ecke oder sonstwas haben, das mich mit dem
Morgengrauen verbindet. Deshalb weiss ich noch gar nicht, wann ich
wiederkommen kann. 
Ich hoffe sehr, dass das schneller als in einem oder zwei Jahren ist, denn ich
muss erstmal ein bisschen arbeiten, um mir den ganzen Kram kaufen zu koennen.

Bis hoffentlich bald,
Crolla

-----------------------------------------------------------------------------



Urlaub :) (Aline, 31. Jul 1996, 15:30:45):
Hallo,

tja ich werde wohl die naechsten 2 Wochen (ab Montag) nicht mehr
ins MG kommen, da ich Urlaub mache. :)
Aber ihr werdet mich nicht so schnell los, da ich einen Teil meines
Urlaubs in Berlin verbringen werde.
Also seid schoen lieb und aergert meinen Eheliebsten nicht allzu sehr!
Und setzt ihm vor allen Dingen keine Flausen mehr in den Kopf, von
wegen eine Frau hat nichts zu sagen!!!!!

Aline winkt artig

-----------------------------------------------------------------------------



Urlaub *freu* (Escubar, 14. Aug 1996, 19:53:57):
Hallo Muddies ;)

Nachdem ich jetzt endlich meine Klausuren hintermir habe (besonders toll wars
ja net, mal gucken ... ) fahr ich ab morgen in Urlaub ;))))

Werde 2 schoene Wochen mit viel Sonne und schoenem Strand verbringen ... ;)

Dann bis September und lasst das Mud stehn ..

Zaubereisbaer Escubar

-----------------------------------------------------------------------------



Bin mal eben weg (Mahatma, 15. Aug 1996, 15:29:09):
Moin,

da ich jetzt fuer 2 Wochen mal heimfahre, werde ich demnaechst nicht hier
anzutreffen sein. Wer also schon immer mal die Hydra antesten wollte, ohne 
dabei von Turbo-Mahatma behindert zu werden, fuer den ist jetzt die beste
Zeit gekommen ;).

So denn.

Mahatma


-----------------------------------------------------------------------------



Re: Bin mal eben weg (Rudiratter, 15. Aug 1996, 17:12:14):
~#! rn=Mahatma rt=840115749
~#! tid=840115749
Super, dann krieg ich ja endlich mal nen Knochen ab ;)

Rudi

-----------------------------------------------------------------------------



Re: Re: Bin mal eben weg (Ryne, 15. Aug 1996, 22:38:54):
~#! rn=Rudiratter rt=840121934
~#! tid=840115749
He, nicht so gierig!

von einem Knochen koennen locker auch zwei essen. Ich mach dann den Jerry
Lewis.

Ryne schreibt Artikel die keiner versteht.

-----------------------------------------------------------------------------



Von wegen Urlaub (Quengistu, 16. Aug 1996, 15:47:28):
Vom 17.8. bis 22.8 wird mein "Alter Ego", welches mittels Tastatur mein
Geschicke in dieser Welt lenkt, leider verreist sein (Nein, leider kein
Urlaub, sondern Konferenz). Daher werden ich und mein treuer
Goldmuenzentraeger Aureus in der genannten Woche abwesend sein.

Weiterhin frohes MUDden, wuenscht Quengistu

-----------------------------------------------------------------------------



Kaum Seher, schon Urlaub! (Tolgan, 22. Aug 1996, 16:59:18):

Hallo allerseits :)
Da ich gestern nach harter Arbeit Seher geworden bin, fahre ich nun nach
Korsika Urlaub machen... *grins*
Bis in so ca. 2 Wochen.

Ciao
     Tolgan


-----------------------------------------------------------------------------



4 Wochen weg (Skipper, 22. Aug 1996, 23:49:38):
Hi,

ich mach mal 4 Wochen Pause. Fahre nach Irland.

bis bald und viel Spass

Skipper

-----------------------------------------------------------------------------



NEID (Critias, 13. Sep 1996, 21:14:14):
ICH BIN NEIDISCH AUF ALLE DIE IHR DA IN URLAUB FAHRT!! BESONDERS AUF
SKIPPER!!!!! ARGGL ;)


Critias, der seit 4 Jahren nicht mehr in Urlaub war!!! :(( Spenden werden gern
entgegengenommen ;)

-----------------------------------------------------------------------------



Das Gebirge (Caradhras, 19. Sep 1996, 22:08:52):
Ist von Freitag bis Montag 2 mal druff (30ter) 10 Tage lang wech.
AnderLand-Leute kriegen mich auch schon vorher zu sehen.

     Rothorn Caradhras - rising 15.003 feet in the air

-----------------------------------------------------------------------------



Immer noch weg... (Crolla, 20. Sep 1996, 22:57:40):
Tja, ich bin immer noch in England und habe immer noch keinen Account... aber
ich arbeite dran ;)

Crolla

-----------------------------------------------------------------------------



Mal wieder eine Weile weg... (Lug,  3. Nov 1996, 04:10:16):

Nur falls es jemanden interessiert. Ich bin mal wieder in Oldenburg. In
NOtfaellen Symbi kontaktieren!
Bis denn und viel Spass beim mudden!
Lug

-----------------------------------------------------------------------------



Re: Mal wieder eine Weile weg... (Symbiont, 13. Nov 1996, 21:13:19):
~#! rn=Lug rt=846990616
~#! tid=846990616
Jaja, und ich hab dann wieder den Stress. =:)

*grins-Toeter-an*

Ein selten anwesender Symbiont, aus Langeweile. (Wo liegt das?)

-----------------------------------------------------------------------------



Spielpause (Escubar, 12. Jan 1997, 22:47:30):
Hi Muddies,

nachdem ich meinen Posten jetzt erstmal los bin, werdet Ihr mich ne zeitlang
nimmer sehen.

Ich muss mich leider meinem Studium widmen, da ich im Maerz ne Klausur hab,
die ich unbedingt bestehen muss, sonst isses aus :(

Ich wuensch Euch viel Spaessle, einige seh ich ja in Karlsruhe (da komm ich
vorbei ;) und dem Rest ne schoene Zeit.

Euer Eisbaer Escubar

-----------------------------------------------------------------------------



ich brauch geld (Vanir, 12. Feb 1997, 14:50:23):
SO, ich werde mich ab Montag fuer eine laengere Zeit aus dem Mud 
zurueckziehen, da ich etwas arbeiten werde, vielleicht schaff ichs 
ja zwischendurch mal reinzugucken. Bis in 7 wochen,

        Vanir.

-----------------------------------------------------------------------------



In den Wilden Sueden... (Anatol, 20. Feb 1997, 20:59:37):
...wird es mich ziehen und ich werde wohl auch nach der Party fuer einige Zeit
dort bleiben, werd' also von Samstag an bis etwa anfang April nicht mehr oder
nur minutenweise auftauchen. 

Ich wuensch' euch was :)
Anatol


-----------------------------------------------------------------------------



Noe! (Methedras, 13. Mar 1997, 18:42:04):
Ab uebermorgen eine Woche Ruhe vor (saemtlichen) Froeschen und
Bergen hier im MG. Viel Spass beim laggen. 

      Ein Teil des Nebelgebirges

-----------------------------------------------------------------------------



Re: Noe! (Kretek, 14. Mar 1997, 03:27:27):
~#! rn=Methedras rt=858274924 rg=seher.urlaub
~#! tid=858274924
Na ja, lass das mal nicht Bendeigid hoeren, sonst ist der noch total
verwirrt, wenn ich doch hier rumspuke :-)

Vampirfrosch

       | /  |\  |--  ---  |--  | /
       |<   |/  |-    |   |-   |<
       | \  |\  |--   |   |--  | \

-----------------------------------------------------------------------------



Urlaub (Taz, 28. Apr 1997, 18:20:13):
Ich bin vom 2.5 bis 11.5 in Paris und somit nicht hier.

Anakin.

-----------------------------------------------------------------------------



Armer Anakin! (Mieze,  2. Mai 1997, 08:35:08):

Armer Anakin, wie kannst Du Dich bloss freiwillig nach Gallien begeben??

Eine anti-francophile Mieze

-----------------------------------------------------------------------------



Re: Armer Anakin! (Fyt,  2. Mai 1997, 10:07:34):
~#! rn=Mieze rt=862554908 rg=seher.urlaub
~#! tid=862554908

francophob... oder vielleicht auch francophag...

scnr, fyt.

-----------------------------------------------------------------------------



Urlaub -leider nein.  Aber trotzdem wech. (Aline, 17. Mai 1997, 21:04:57):

So fuer alle die es interessiert........

Ich bin in der naechsten Woche in Bamberg auf
einer Tagung. Bei der Gelegenheit werde ich wohl auch mal auf
den Berch gehen............;)
Wo man hier soviel davon liest.
Leider habe ich auf der Tagung keinen Internetzugang :(

Bis denne also

Aline

-----------------------------------------------------------------------------



spielpause (Janice,  2. Jun 1997, 12:50:56):
wie im Titel schon zu sehen, ich mach eine Spielpause von 14 Tagen, 
logischerweise wegen Klausuren, sonst wuerd ich sowas nie machen ! :)

Tschue
  Janice

-----------------------------------------------------------------------------



Tach und weg.... (Vanir, 17. Jul 1997, 12:27:16):
Tja, demnaechst werde ich hier noch seltener auftauchen. Erst 2 Wochen Urlaub
und dann erstmal 4 Wochen schuften, macht 6 Wochen ohne Mud. naja ich werds
ueberleben. Und wens interessiert: Ich komme zur Party. 

Bis die Tage, Vanir.

P.S.: wer mich unbedingt erreichen will kann meine Telefonnummer bei einem der
Osnabruecker erfragen


-----------------------------------------------------------------------------



England here I come ! (Orktoeter, 22. Jul 1997, 14:59:02):
Wie der Tiel schon sagt, gehts jetzt ab nach England, bin mitte August wieder
da, viele liebe Gruesse an alle meine Freunde !

OrkT (und Familie).

-----------------------------------------------------------------------------



Einmal rund um die Ostsee (Cakey, 24. Jul 1997, 16:40:21):
Ich will mich mal wieder so richtig schaffen, deshalb bin ich fuer die
naechsten 7 Wochen nicht da und fahre mit'm Rad um die Ostsee. Ab Mitte
September bin ich wahrscheinlich wieder da.
Machts gut!

Cakey

-----------------------------------------------------------------------------



Endlich Urlaub!!! (Gnome, 25. Jul 1997, 14:52:55):
hiho,
sooo... endlich urlaub an der nordsee... bin in 2-3 wochen wieder da :-)
aergert briesel net so viel und lasst mir das mud stehen ;-)
ich freu mich schon auf die party... :-)

gnOme

-----------------------------------------------------------------------------



Ich mach auch mal Urlaub (Hangover, 28. Jul 1997, 14:54:33):
Moin!

Hiermit verabschiede ich mich und meinen Zweiti fuer die naechsten
drei Wochen vom MUD. Wer noch was von mir will, muss mich bis heute
24 Uhr hier erreichen, danach bin ich erst am 20. August wieder 
hier.

Viel Spass Euch allen,
Hangover

(und lasst das MUD net abstuerzen...)

-----------------------------------------------------------------------------



Urlaub, was sonst? :) (Dieder, 30. Jul 1997, 12:23:33):
Hi!

Also, ich werde jetzt auch erstmal Urlaub machen. Ich hoffe man sieht sich
dann beim MG-Treffen. Im Schrank in meinem Haus liegt alles Zeug von mir rum,
wer will kann sich da gerne bedienen, es lohnt sich :))

Machts gut, bis zum Treffen oder spaetestens im September!

Knuddels,

Dieder

-----------------------------------------------------------------------------



In OL (Lug,  3. Aug 1997, 03:24:44):
Moin,

meinereiner ist erstmal wieder eine Weile wech, falls sich einer fragen
sollte. Ich seh wohl hin und wieder nach meiner Post vom Internet Cafe aus.

Bis MS denn
Lug

-----------------------------------------------------------------------------



weg (Hardil,  5. Aug 1997, 11:50:08):

Ich fluechte mal wieder. 2 Wochen USA.
Bin erst nach der Mud-Party wieder hier. :-)

-Hardil.

-----------------------------------------------------------------------------



Down Under (Jimdigriz, 27. Aug 1997, 02:50:14):
Moin,

ab 1.9. befinde ich mich fuer 2 Monate (sic!) 
eben dort.

Vielleicht kuck ich zwischendurch mal rein
wenn das mit dem Anschluss klappt :-}

Ciao,
 Jim DiGriz

-----------------------------------------------------------------------------



bin dann mal wech... (Kannix, 27. Aug 1997, 15:53:25):
Hi HO!
(ich muss das doch nun auch mal probieren...:-))

ich wollt dann nur mal kurz mitteilen, dass ich bis zum 15.9. oda so in der
gegend nicht ins mg komme, da ich mich in der sonne raekeln werde und
geniessen, werde, dass man urlaub machen kann!
wuensch euch allen was.....
Kannix

-----------------------------------------------------------------------------



wech (Snuggle, 29. Aug 1997, 15:33:58):
sitze bis auf weiteres in meiner Bonbonniere. Bis bald

Snug

-----------------------------------------------------------------------------



Semira@Shannon (Semira, 29. Aug 1997, 18:25:03):
Sodele, ich lasse Euch dann mal fuer 2 Wochen ungeknuddelt und treibe so lange
auf einem Hausboot in Irland mein Unwesen. Wer n Kaertchen will...bis sagen
wir..freitag 18:55 mail an mich (also bis in 30 min ;) )

Semira geht schiff(f)ahrn - mit wie viel "f" auch immer 

-----------------------------------------------------------------------------



seher.urlaub (Yunga, 29. Aug 1997, 21:55:48):
~#! on=Yunga ot=872883895 og=allgemeines
Hi,
falls es jemanden interessiert: Ich und meine Fee sind bis zum 11. September
in Urlaub. Lasst uns das MG bis dahin stehen....

Yunga

-----------------------------------------------------------------------------



Urlaub (Skipper,  1. Sep 1997, 20:40:42):
Hi,

bin ab morgen fuer vier wochen weg. Bis denne

Skipper

-----------------------------------------------------------------------------



Fleissig arbeiten :) (Mieze, 15. Sep 1997, 08:31:01):
Hiho,

fuer die wenigen, die sich dafuer interessieren ... :)

Ich muss mich ein bisschen mehr um mein Studium kuemmern und ein paar
haessliche Pruefungen hinter mich bringen. Bis Semesterbeginn (13.10. bei uns)
werd ich wohl nur ab und zu da sein.

Mieze, die nichts mehr hasst als Pruefungen.

-----------------------------------------------------------------------------



Wech (Lug, 27. Sep 1997, 01:22:50):

Moin,

mal wieder eine Weile wech. Aber kein Grund zur Freude. Komme wieder, wenn
mich keine plattfaehrt.

Pfffffft!
Lug

-----------------------------------------------------------------------------



MZP (Anatol, 21. Okt 1997, 16:28:20):
"MZP" heisst Magisterzwischenpruefung, und eine eben solche habe ich am 
19.11. im Nebenfach Informatik - und da darf ich einfach nicht durchfallen.
Ja, man kann auch in Osnabrueck eine nicht bestandene MZP genau einmal

wiederholen. Das Problem ist: Es ist bereits die Wiederholung. :)

Die Tatsache, dass ich einen Monat spaeter dasselbe fuer die Psychologie
bestehen muss, gar nicht mitgezaehlt, ist es doch Grund genug, mich hier
fuer den Rest des Jahres 1997 etwas rarer zu machen.

Freut euch nicht zu frueh, ich werde einmal pro Woche hier sein und
Mails/Zeitung lesen. Aber das ist dann wohl auch schon alles.

Viel Vergnuegen,
Anatol

-----------------------------------------------------------------------------



CNO (Cauno, 14. Nov 1997, 13:03:35):
Ich werde ab sofort was kuerzer treten, falls das noch keinem aufgefallen
sollte.
Das heisst, etwa einmal pro Woche wird von mir das Brockhaus-Puiz
aktualisiert, bis zum Ende des Jahres. Wenn jemand anderes Lust hat, den
Kalender fuers naechste Jahr zu uebernehmen, hab ich nichts dagegen. Ich
selber hab ihn bis jetzt noch nicht gekauft, und bin mir nicht sicher, ob ich
es noch tun werde.
Hin und wieder werde ich noch mal Zeitung lesen.

C. No

-----------------------------------------------------------------------------



Bin erst mal weg (Denti, 31. Jan 1998, 21:50:47):

Ist zwar nicht ganz passend, aber hier passt es am besten:

Ich bin jetzt vorraussichtlich erst mal laengere Zeit weg, um genau zu sein
2 Jahre, mit kleinen Unterbrechungen. Wie manche schon mitbekommen haben,
beginne ich eine Ausbildung bei der Lufthansa Flight Training zum 
Verkehrsflugzeugfuehrer. Das bringt leider mit sich, dass ich relativ
wenig Geld habe und mir daher keinen Zugang leisten kann, ausserdem muesste
ich in Bremen bzw. Phoenix erst mal einen Provider finden, wo ich umsonst
rein kann ;).

Ich hoffe, ich werde das MorgenGrauen noch wiedererkennen, wenn ich wieder 
mal laengere zeit mudden kann.

Denti wuenscht allen viel Spass (das hier ist ein Spiel).

-----------------------------------------------------------------------------



Urlaub (Dieder, 10. Feb 1998, 19:07:47):
Hallo!

Bin jetzt weg bis spaetestens 16.03.98... dann aber hab ich endlich wieder
zeit, um taeglich drin sein zu koennen... (wen's interessiert :-))

Viel Spass Euch allen,

Dieder

-----------------------------------------------------------------------------



Immer noch "weg"... (Crolla, 23. Feb 1998, 19:14:07):
Hmm falls es jemand noch nicht gemerkt hat: Ich bin jetzt nicht seit ein paar
Monaten nicht mehr so oft (sprich: eigentlich ueberhaupt nicht) drin. Das
liegt daran, dass meine Uni mir zuerst einen telnet Zugang verweigert hat
(Argument war, dass das zu viele benutzt haben... *wunder*), und jetzt muss
ich leider Diplomarbeit schreiben und habe richtig richtig viel zu tun.

Tja schade schade... hoffentlich klappt es irgendwann mal zwischendurch oder
danach oder....

Crolla

-----------------------------------------------------------------------------



Urlaub? (Aline,  2. Apr 1998, 16:42:20):

So naechste Woche und die Woche bis zum 18.4 hab ich meinen
Resturlaub auf der Arbeit nehmen muessen. Ab und zu werde
ich dann mal abends eingeloggt sein.

Falls es ueberhaupt jemanden interessiert.......

Vermisst mich ja eh keiner :( :(

Aline (fishing for ... ;) )

-----------------------------------------------------------------------------



Arbeit/Urlaub??? (Denti, 13. Apr 1998, 23:15:13):

Nach zwei Wochen Urlaub im MG heisst es mal wieder Abschied nehmen, da
ich fuer die naechsten 2 Monate in Phoenix/Arizona den ersten praktischen 
Teil meiner Flugausbildung absolviere. Eventuell habe ich Glueck und komm
irgendwie an einen Rechner mit Netzzugang oder Modem, dann lasse ich mich 
oefter blicken, ansonsten hoffe, ich, dass ich zumindes mail machen kann, 
und bin damit unter s_h_sieber@hotmail.com erreichbar.

Denti wird das MG vermissen.

-----------------------------------------------------------------------------



auch mal in dieser Rubrik posten :) (Mieze, 16. Apr 1998, 14:12:11):

Hiho Muddies,

wens interessiert: Ich bin bis 20.4. mit nem Kammerchor unterwegs.
Wer alte Musik mag, ein Konzert gibts am 19.4.  16 Uhr auf Schloss Crossen.
bis denne...

... Die Mieze - uebt sich im Belcanto :)

-----------------------------------------------------------------------------



Re: auch mal in dieser Rubrik posten :) (Grimmborn, 16. Apr 1998, 14:54:53):
~#! rn=Mieze rt=892728731 rg=seher.urlaub
~#! tid=892728731
Irgendwas in der Gegend von Koeln dabei? Wie heisst die Band?
Fragen ueber Fragen...

Grimmborn der Atheist

-----------------------------------------------------------------------------



urlaubm mach mal urlaub.... *sing* (Ancalagon, 17. Apr 1998, 12:03:47):
Kurze rede, langer sinn:
Ab sonntag werde ich eine woche in oesterreichs hauptstadt Wien verbringen.
Alle MGler die zu der zeit gfrad da sind und mal einen Knuddeldrachen live
erleben wollen, koennen ja mal schaun, ob sie mich da erwischen.....
Unterkommen werd ich wohl bei penelope.......
Bis demnaechst mal,
                                   Ancalagon
                         Draco knuddellensis major

-----------------------------------------------------------------------------



Spielpause (Hangover, 26. Mai 1998, 17:14:18):
Moin!

Hangover und Lilaf sind erstmal in Urlaub.

-Hangover

-----------------------------------------------------------------------------



Re: Spielpause (Hardil, 29. Mai 1998, 13:41:09):
~#! rn=Hangover rt=896195658 rg=seher.urlaub
~#! tid=896195658

Ich mach auch 'ne WOche SPielpause wegen Turnfest.
Aber das interessiert ja eh keine Sau. :)

-Hardil.

-----------------------------------------------------------------------------



Re: Re: Spielpause (Anacrion, 30. Mai 1998, 14:58:56):
~#! rn=Hardil rt=896442069 rg=seher.urlaub
~#! tid=896195658
Hmm. Ich bin doch auch beim Turnfest .... MUDTREFFEN ? :)

Anac*

-----------------------------------------------------------------------------



Urlaub (Shannara, 30. Jun 1998, 16:09:20):
Ich werd samt meinen Zweities auf unbefristete Zeit nicht mehr ins Mud kommen,
weil die Atmosphaere hier im Spiel sich drastisch in der letzten Zeit
verschlimmert hat.

Viel Spass noch.

 Shannara.


-----------------------------------------------------------------------------



Re: Urlaub (Pra, 30. Jun 1998, 16:15:58):
~#! rn=Shannara rt=899215760 rg=seher.urlaub
~#! tid=899215760
... wenn Du mit 'in der letzten Zeit' die letzten 3 Jahre meinst, dann
hast Du sicher recht ... :-)

Ach ja, frueher war alles besser... *seufz*

Pra. Alter Knacker.

-----------------------------------------------------------------------------



Re: Re: Urlaub (Shannara, 30. Jun 1998, 16:17:38):
~#! rn=Pra rt=899216158 rg=seher.urlaub
~#! tid=899215760
Seufz, typisch.

in der letzten zeit meine ich gut die letzten Monate wo ich da war

Shannara

PS: noch hab ich mich noch nit ausgeloggt

-----------------------------------------------------------------------------



ebendies (Hardil, 29. Jul 1998, 11:41:21):

01.08. bis 15.08.
Korfu.
42 Grad, Wassertemperatur angenehm.

Genau das richtige fuer einen Rentner.


-Hardil.

-----------------------------------------------------------------------------



na was wohl (Dieder, 30. Jul 1998, 10:02:53):
Hi!

Da "mail freunde" schon seit Monaten buggt und sich keiner findet, der dies
debuggen kann/will, texte ich Euch eben hier zu... :))

Also: Ich bin ab morgen, Freitag, fuer mindestens 4 Wochen weg, evtl. sogar
bis Ende September (nein, davon ist nur eine Woche Urlaub, der Rest ist Arbeit
:(().
Ich wuensch Euch allen stressfreie Zeit (trotz der Abwertungen *grins*)!

Gruss und knuddelz,

Dieder

PS: Mein gesamtes Zeug werde ich heute nachmittag in mein Haus schmeissen -
wer zuerst kommt, mahlt zuerst... :)

-----------------------------------------------------------------------------



Will auch mal .. (Zephyr, 30. Jul 1998, 16:50:34):

.. in Urlaub, und Montag gehts los. Erst zum Tryfan und anschliessend
nach Duncton. Ab Freitag bin ich also 2 Wochen nicht hier - lasst das
Mud leben und flamed nicht so viel, dass die wichtigen Artikel alle
geloescht sind wenn ich aus dem Urlaub zurueck bin ;)

*knuddels*
             Zephyr

-----------------------------------------------------------------------------



Sommer! Regen! (Mahatma, 30. Jul 1998, 16:59:06):
Bin ab morgen bis Mitte September nicht im MUD. Gruesst die Hydra von mir.
Mahatma

-----------------------------------------------------------------------------



Re: Sommer! Regen! (Taz, 30. Jul 1998, 16:59:52):
~#! rn=Mahatma rt=901810746 rg=seher.urlaub
~#! tid=901810746
Hmm..

dann ich auch:

bin von Ende August bis Anfang Oktober im Urlaub.

So.

Anakin.

-----------------------------------------------------------------------------



und wech ... (Eisi,  5. Aug 1998, 01:33:07):
Wens interessiert: ich werd auch kurz weg sein ... verm. bis Anfang September.
Wenns klappt, lass ich mich am Weekend auf der Fete blicken.

Also bis dann oder spaeter! 

Knuddels, Eisi

-----------------------------------------------------------------------------



Irland (Skipper, 26. Aug 1998, 23:01:58):
Hallo,

ich bin fuer gut vier Wochen in Urlaub, dahin wo das Guinness am besten
schmeckt ;-))
Viel Spass beim mudden und lasst noch ein paar Sachen, wie sie sind, damit
ich wenigetsens noch etwas erkenne, wenn ich wiederkomme ;-)

Mast- und Schotbruch

Skipper

-----------------------------------------------------------------------------



Snotty macht unfreiwillig Urlaub (Knurt, 11. Okt 1998, 13:05:10):
Jo, 
eben bat mich Snotty per mail ich moege mal in die MPA setzen, dass er fuer
ein 1/2 jahr nicht mehr mudden wird, weil er ein Auslandssemsester macht und
da keinen Zugriff aufs mud hat. Oder wie er schreibt: "Die Idioten hier haben
jeden Zugriff auf Dinge ausserhalb des Campus gesperrt. Und da ist nix zu
machen." 

Hmmm.
Traurig,
Knurt

-----------------------------------------------------------------------------



Bin zwei Wochen weg (Tsunami,  8. Dez 1998, 15:40:35):
Falls es Probleme in der Eismine gibt: ich bin bis am 21.12.98 weg. Also,
entweder Mail an mich oder damit es (vielleicht) schneller geht, an Bierchen
oder 112.

Bis denne,

Tsunami

-----------------------------------------------------------------------------



Re: Bin zwei Wochen weg (Grimmborn,  8. Dez 1998, 18:26:19):
~#! rn=Tsunami rt=913131635 rg=seher.urlaub
~#! tid=913131635
Hat das einen Sinn, dass Du das als Magier in seher.urlaub schreibst, zumal Du
das in magier.urlaub auch schon geschrieben hast?

Grimmborn der Atheist

-----------------------------------------------------------------------------



Re: Re: Bin zwei Wochen weg (Padreic,  8. Dez 1998, 19:41:56):
~#! rn=Grimmborn rt=913141579 rg=seher.urlaub
~#! tid=913131635
Also Grimmi, dann les doch mal richtig! Die Artikel sind ja keineswegs gleich,
sondern enthalten einen wichtigen unterschied.
Die Spieler sollen 112 oder Bierchen eine nette mail schreiben wenn was ist,
wir hingegen sollen ihnen vors Schienbein treten.

Padreic (freudig auf den naechsten Bug wartend....)

-----------------------------------------------------------------------------



Re^3: Bin zwei Wochen weg (Grimmborn,  9. Dez 1998, 10:16:38):
~#! rn=Padreic rt=913146116 rg=seher.urlaub
~#! tid=913131635
Upps. :-) Ich war gestern etwas unkonzentriert...

Grimmborn der Atheist hat schon die dicken Stiefel an

-----------------------------------------------------------------------------



Paeuschen... (Mieze, 12. Dez 1998, 00:28:02):

Hi Muddies,

auch Katzenkrieger brauchen mal ne Pause. Darum werd ich in naechster Zeit
seltener da sein (viel zu tun) und eventuell auch ne Weile gar nicht. Mal
schauen, wie gross die Sucht ist.


Gruss Mieze - pausierend

-----------------------------------------------------------------------------



Morgar ist weg. (Morgar, 22. Dez 1998, 17:11:06):
Ich werde von Heute an (22.12.) bis zum 10.1. wohl nicht im Morgengrauen sein.

Morgar

-----------------------------------------------------------------------------



Urlaub... ;) (Thufhir, 22. Dez 1998, 22:41:28):
Thufhir und seine kleinen sind bis zum 1.4.99 im Urlaub.
frohes Fest und guten Rutsch. ;)

-----------------------------------------------------------------------------



na was wohl (Dieder, 23. Dez 1998, 11:48:59):
... Urlaub ueber die Feiertage, bin wohl ab 4.1. wieder da. Ich wuensch Euch
ein frohes Fest und guten Rutsch etc blablabla... :)

Ein besonderer Weihnachtsgruss noch an alle meine Freunde, denen ich leider
keine Mail schicken kann, da mein fband wohl zu gross ist (FiRZG beim
Abschicken, aber ich brings einfach nicht uebers Herz, das mal zu entruempeln
:-)))

Mit chaotischem Gruss,
Dieder

-----------------------------------------------------------------------------



-> /bin/weg (Anacrion, 23. Dez 1998, 15:50:27):
Hallo und Tschuess :)

Da ich vom 26.12. bis zum 3.1 Skifahren bin und demzufolge nicht mudden kann,
wuensche ich Euch allen ein frohes ud gesegnetes neus Jahr, weisse Weihnachten
und guten Rutsch, alles erdenkliche Gute, eine niedrige Telefonrechnung im
besonderen.

Bis im naechsten Jahr

Anacrion

-----------------------------------------------------------------------------



Re: -> /bin/weg (Anakin, 23. Dez 1998, 15:51:31):
~#! rn=Anacrion rt=914428227 rg=seher.urlaub
~#! tid=914428227
Na los...

nu aber jeder posten, dass er toll im skiurlaub ist am besten noch
mit grossen bildern dazu.


anakin.

-----------------------------------------------------------------------------



Ups... (Anatol, 26. Jan 1999, 11:41:28):
Bis auf weiteres werde ich ab naechster Woche aus technischen
Gruenden etwas seltener da sein.

Anatol


-----------------------------------------------------------------------------



Re: Ups... (Brandir, 27. Jan 1999, 22:43:48):
~#! rn=Anatol rt=917350888 rg=seher.urlaub
~#! tid=917350888
Oehm Anatol, koennten sich die "technischen Gruende" auf die 50
Stunden-Begrenzung der Uni-Osnabrueck beziehen, die Du mal wieder gesprengt
hast ?

Brandir - schmunzelnd

-----------------------------------------------------------------------------



Re: Re: Ups... (Anatol, 28. Jan 1999, 00:24:21):
~#! rn=Brandir rt=917477028 rg=seher.urlaub
~#! tid=917350888
Nein, die beziehen sich auf einen Rechnerraum, der heute aufgeloest wurde.

Anatol


-----------------------------------------------------------------------------



Skifahrn (Birdy, 19. Feb 1999, 17:03:57):
Bin ab 1. Maerz wieder da. :)

-----------------------------------------------------------------------------



Ski in Thailand (Brandir, 12. Mar 1999, 23:34:24):
Nein, nicht ganz Skifahren in Thailand, aber ich werde jetzt erstmal in den
Skiurlaub fahren (hab ich mir verdient) und gleich im Anschluss nach Thailand
(hab ich mir noch viel mehr verdient)(und NEIN, ich werde keinen SEX-Urlaub in
Thailand machen, das Land hat (hoffentlich) noch mehr zu bieten ;-) )

Das ist leider auch der Grund, warum ich nicht zur Fete kommen konnte.
Ich werde so ab dem 7.4.99 wieder suechtig wie eh und je da sein

Viel spass euch allen,
Brandir

-----------------------------------------------------------------------------



Ab sofort bin ich weniger da (Slyfox, 22. Mar 1999, 16:46:57):
Da ich in letzter Zeit eh nur Tode hier sammle, und mir auf die Dauer
das Internet zu teuer wird, und es dank einer Regulierungsbehoerde auch nicht
billiger wird, bin ich ab sofort nur noch selten da.

   bis denne

      Sly

-----------------------------------------------------------------------------



Abschied auf Zeit (Teddy, 25. Mar 1999, 19:56:27):
Hiho, 

ich muss wohl voruebergehend ein wenig pausieren, da ich zur Zeit keinen
Netzzugang habe.

Mit ein wenig Glueck ist das zwar nur voruebergehend aber mit ein wenig Pech
sinds ein paar Monate, also vorsichtshalber Abschied, nicht zu frueh freuen.

EMail ins MG werden an ne GMX Adresse geroutet, die ich von der Arbeit aus
zumindest lesen kann, also ich bin nicht voellig weg ;(

So, machts gut und last was ueber vom MG.

Teddy.

-----------------------------------------------------------------------------



Ein Berliner in Paris (Golas, 26. Mar 1999, 10:47:43):
Howdie folks,
ich mach mich heute abend mit meiner Schwester auf nach Paris.
Ich werde fruehestens Mittwoch abend wieder hier sein.

Golas seine letzten Franzoesisch-Kenntnisse auspackend ...

-----------------------------------------------------------------------------



Re: Ein Berliner in Paris (Neb, 26. Mar 1999, 12:12:06):
~#! rn=Golas rt=922445263 rg=seher.urlaub
~#! tid=922445263
Hallo,
ich werde gleich in die Mensa gehen und fruehestens gegen 13 Uhr wieder hier
sein.

Neb.

-----------------------------------------------------------------------------



Re: Re: Ein Berliner in Paris (Muadib, 26. Mar 1999, 16:16:26):
~#! rn=Neb rt=922450326 rg=seher.urlaub
~#! tid=922445263
und wie war der frass ?

-----------------------------------------------------------------------------



Re: Re: Ein Berliner in Paris (Asmodis, 26. Mar 1999, 23:12:53):
~#! rn=Neb rt=922450326 rg=seher.urlaub
~#! tid=922445263
Das nennst du urlaub ?

-----------------------------------------------------------------------------



2 Wochen Kreta !!! (Jasonrigid, 12. Mai 1999, 17:47:20):

Jawohl, ich mache 2 Wochen Urlaub, danach werde ich meine Dipl.Arbeit
anfangen, vermutlich sieht man mich in naechster Zeit seltener hier.

P.S. : Wenn ich ein Internet-Cafe in Heraklion finde, dann statt ich Euch mal
einen Besuch ab *kicher*

Bis denne

Jason

-----------------------------------------------------------------------------



Mudsucht (Aline, 16. Jun 1999, 14:47:25):
Hi Leuts,

auch wenn es keinen interessiert, aber wo es diese Rubrik nunmal gibt...

Lange Rede kurzer Sinn: ich werde testen ob ich es mal 2 Monate ohne
Euch aushalte. (Und ohne das Mud und die MPA :( :()
Vielleicht habe ich ja das Glueck und bekomme da einen Netzzugang,
wenn nicht muss ich mir noch was gegen die Entzugserscheinungen ueberlegen.
Also vom 2.7 - 30.8 bin ich in Seoul.

Schoene Party

Aline

P.S.: Zum Stammtisch am 25.6 ins Walhalla komm ich noch, ich
muss die Sucht nochmal ganz auskosten. ;)

-----------------------------------------------------------------------------



Re: Mudsucht (Gloin, 16. Jun 1999, 14:49:53):
~#! rn=Aline rt=929537245 rg=seher.urlaub
~#! tid=929537245
Geh da ja nicht im NW angeln, sonst schiessen die noch auf Dich :)

Gloin

-----------------------------------------------------------------------------



bye (Gorog, 19. Jun 1999, 23:13:45):
Werd dann mal fuer unbestimmte Zeit meinen Aufenthalt in dieser Virtualtitaet
aufgeben. Naja werd bestimmt mal wieder kommen...
Als dann frohes spielen.

-----------------------------------------------------------------------------



Spielpause (Grimmborn, 29. Jun 1999, 19:00:26):
~#! on=Caradhras ot=930675543 og=puiz
...fuer 42 Tage oder fuer immer, das vermutlich aber nicht.
Falls es noch was gibt, ich bin unter:
andreas.moser@uni-passau.de zu erreichen

     tschuess      die Bergchen Caradhras, Celebdil, Methedras ...
PS: schoenen Gruss an den Sensi

-----------------------------------------------------------------------------



Spanien (Nairolf, 21. Jul 1999, 08:31:14):

Soo ich werde erstmal etwas Urlaub mit meinen Zweities und so machen :)

Bin bis 13.8. in Spanien.
Bis dahin: VIEL SPASS BEIM MUDDEN !!! 

Ciao Nairolf

-----------------------------------------------------------------------------



Zwangspause... (Mieze, 22. Jul 1999, 10:40:52):

Hi Muddies,

bin bis 1.8.99 auf Konzertreise mit meinem Chor und kann darum weder mudden
noch zur Party kommen *megaschnief* Falls Ihr in der Naehe seid und Lust auf
Kultur habt, hier sind die Termine und Konzertorte:

24.07.  Koblenz  19 Uhr  Florenzkirche
25.07.  Bad Neuenahr  9.30 Gottesdienst)
        Maria Laach 19 Uhr
26.07. Aachen 20 Uhr (nicht im Dom leider, weiss ber nicht genau wo)
28.07. Bonn 20 Uhr 
29.07. Dahlen  19 Uhr
30.07. Mayschoss 19 Uhr
31.07. Koeln 20 Uhr
1.08.  11.40 Uhr Altenberg Altenberger Dom.

Ach ja... der Chor heisst Thueringischer Akademischer Singkreis (kurz TASK).

Also: wenn Ihr nichts zu tun und Lust auf Kultur habt, kommt vorbei und hoerts
Euch an :)


Mieze - oelt schonmal ihre Altstimme.

P.S. Viel Spass bei der Party!


-----------------------------------------------------------------------------



Re: Zwangspause... (Pra, 22. Jul 1999, 12:29:58):
~#! rn=Mieze rt=932632852 rg=seher.urlaub
~#! tid=932632852
Weisst Du denn, wo ihr in Bonn singen werdet?

Vielleicht --- ich sagte *vielleicht* --- wird Pra es sich ja antun,
und sich einen Chor mit thueringischen Akzent anhoeren ;-)

Pra. 

-----------------------------------------------------------------------------



Re: Re: Zwangspause... (Taragon, 22. Jul 1999, 14:46:49):
~#! rn=Pra rt=932639398 rg=seher.urlaub
~#! tid=932632852
Wieso muss ich da jetzt spontan an Oe la paloema blanka denken ? :-)

-----------------------------------------------------------------------------



Re: Re: Zwangspause... (Mieze,  2. Aug 1999, 22:59:59):
~#! rn=Pra rt=932639398 rg=seher.urlaub
~#! tid=932632852

hmm das war in der Kreuzkirche - uebrigens singen wir hochdeutsch :)

Gruss Mieze


-----------------------------------------------------------------------------



Re^3: Zwangspause... (Jasper,  4. Aug 1999, 02:30:46):
~#! rn=Taragon rt=932647609 rg=seher.urlaub
~#! tid=932632852
LACH :)

-----------------------------------------------------------------------------



Fast-Urlaub (Mieze,  5. Aug 1999, 09:16:04):

Hi Muddies,

bin in den naechsten 3 Monaten (bis Ende November) etwas weniger im MG, weil
ich "nebenbei" ein Verlagspraktikum habe. An den Wochenenden werde ich dann
das Muddefizit der Woche ausgleichen (so wie ich mich kenne :)).

Viel Spass beim Mudden und ne schoene Zeit wuenscht Euch Mieze!


-----------------------------------------------------------------------------



Ferien (Gloin,  5. Aug 1999, 18:52:19):
Ich beginne ebenfalls mit dem nichtverdienten Urlaub ... also lasst Euch
von einem anderen ver-/entgiften.

Gloin

-----------------------------------------------------------------------------



Re: Ferien (Rochus,  5. Aug 1999, 18:53:31):
~#! rn=Gloin rt=933871939 rg=seher.urlaub
~#! tid=933871939
Hmm, das VERgiften erledige ich gerne fuer Dich :-)

-----------------------------------------------------------------------------



Pech (Lug, 10. Aug 1999, 01:49:18):

Ich mach gerade keinen Urlaub...

Lug

-----------------------------------------------------------------------------



Urlaub (Roadrunner, 10. Aug 1999, 19:06:13):
Ich werd mal die naechsten 3 Wochen nicht oder sehr selten mal da sein -
Brauche mal was anderes als Flaches Glas vor der Nase.

Roadrunner

-----------------------------------------------------------------------------



Re: Pech (Teddy, 13. Aug 1999, 19:27:34):
~#! rn=Lug rt=934249758 rg=seher.urlaub
~#! tid=934249758
Also ich auch nicht, aber ich bin wieder mal in Muenchen, wieder mal im MG und
wieder mal ueberhaupt und so, nur falls es irgendwen interessiert. ;-)

Teddy
Teddy, immernoch Deutscher und kein Bayer.

-----------------------------------------------------------------------------



ualaub (Golas, 13. Aug 1999, 23:04:08):
to whom it may concern
ich mach ualaub, 2 wochen oder so, mal sehen
je nach inet cafe angebot schau ich mal rein

unt weg

golas

-----------------------------------------------------------------------------



na was wohl... (Niete, 20. Aug 1999, 09:47:13):

ab montag dem 23. bin ich fuer ca. 4 wochen im urlaub. falls moeglich, werde
ich ab und zu mal reinschauen, aber dann wird's hier wohl nacht sein.
viel spass beim mudden oder was ihr sonst so macht. (gibt's da was anderes?)

bye, nietchen


-----------------------------------------------------------------------------



abwesenheit (Thufhir, 20. Aug 1999, 12:15:46):

aufgrund meines aufenthalts in tashkent, uzbekistan werden das morgengrauen
und jungmagier in der naechsten woche von der mehrfach testierten wurst
verschont.

tshoe und danke fuer den fisch,
s'zauberzwerch

-----------------------------------------------------------------------------



urlaub (Snuggle, 26. Aug 1999, 13:51:14):
Hi Ihrs,

auch wenn mich inzwischen wohl kaum noch einer kennt. Ich bin fuer 3 Wochen in
Frankreich zum Tauchen und wuensche allen, die trocken bleiben muessen, 3
ruhige und angenehme Wochen.

Tschaui bis denne

Snuggle

-----------------------------------------------------------------------------



Re: urlaub (Bambulko, 26. Aug 1999, 14:30:58):
~#! rn=Snuggle rt=935675474 rg=seher.urlaub
~#! tid=935675474
Doch ich kenn dich noch....auch wenn mich selbst wohl kaum noch einer
kennt......will auch tauchen gehen......

Bambulko

-----------------------------------------------------------------------------



Urlaub Aegaeis (Skipper,  2. Sep 1999, 21:28:25):

Moin, bin ca 4 wochen weg.. macht's gut !!

Gruss

Skipper

-----------------------------------------------------------------------------



Zwangsurlaub (Mieze,  4. Okt 1999, 23:38:18):

Hi Muddies,

muss leider fuer eine Woche nach Frankreich und kann daher gar nicht meiner
Sucht froenen. Ich hoffe, die Sorbonne ist gut ausgestattet mit Compis, so
dass ich vielleicht doch ganz kurz mal vorbeischauen kann (obwohl
franzoesische Tastaturen ein Grauen sind!!!!).

Lasst es Euch gut gehen und das MG heil!

Mieze - widerwillig nach Gallien reisend.


-----------------------------------------------------------------------------



back in ca. 10 Tagen ... (Eisi,  8. Okt 1999, 13:48:42):
Hi!

Ich werd mich gen Norden verziehen und 1 Woche Elche scheuchen. Falls es
jemand
geben sollte, der mich vermisst ...

*knudd^H^H^H^H^HaufdenBodenSpuck*

Chaot Eisi.
-

-----------------------------------------------------------------------------



wien (Birdy,  8. Okt 1999, 22:42:57):
bin vom 15.10. bis 25.10. in wien

-----------------------------------------------------------------------------



Bund (Birdy,  8. Okt 1999, 22:43:38):
Leuts, ab 1.10. bin ich beim Bund und wahrscheinlich bloss am wochenende dann
mal ab und zu drin.
vermisst mich !;)

-----------------------------------------------------------------------------



Re: Bund (Birdy,  8. Okt 1999, 22:44:48):
~#! rn=Birdy rt=939415418 rg=seher.urlaub
~#! tid=939415418
argl, ich mein 1.11. :)

-----------------------------------------------------------------------------



Re: Bund (Mango,  9. Okt 1999, 23:30:20):
~#! rn=Birdy rt=939415418 rg=seher.urlaub
~#! tid=939415418

wem soll ich denn dann immer mein schoener liedchen singen Birdy? ;)

Mango, dich bemitleidend.


-----------------------------------------------------------------------------



Umzug (Sorcerer, 21. Okt 1999, 02:21:12):
Aufgrund eines "kleinen" Umzugs ueber ein paar tausend Meilen werde ich wohl
in der naechsten Woche etwas seltener im MUD sein...

Machts gut und lasst das MUD stehen (ich will meine Kompos noch haben, wenn
ich wiederkomme :) ).

Sorcerer

-----------------------------------------------------------------------------



pseudo-spielpause (Mesirii, 18. Nov 1999, 10:30:04):
Hallo Leute,
ich hab zur Zeit ein wichtiges Projekt am Hals, dass ich aber wegen dem ganzen
TF Krempel vernachlaessigt habe. Deshalb muss ich jetzt bis Mitte naechster
Woche das Teil fertig bekommen und leider dem MG entsagen.
Spielpause mach ich ich nich, mail wird geforwarded und wenn was ist, beheb
ich
die Bugs in ner freien Minute (gell Belga*).
So meine lieben Tester, viel Spass beim Probieren und vergesst mir den Mapper
nicht.
Bis naechste Woche
Mesi, (tritt das Projekt)

-----------------------------------------------------------------------------



schon wieder Urlaub! (Eisi, 28. Dez 1999, 09:29:35):
Hehe,

Ich wuensche allen Daheimbleibenden einen guten Rutsch und 
nicht zuviel Leid mit Y2K Bugs. Wenn ich am 14. noch nicht da bin,
bin ich vermutlich Opfer eines solchen geworden, was mich allerdings
nicht allzusehr aergen wird, denke ich :)

machts gut,
Eisi.

-----------------------------------------------------------------------------



Generalsurlaub (Golas,  2. Mar 2000, 00:03:19):
Ich mach mich mal 2 Wochen duenne ... 
nein, ich mache keine diaet, sondern urlaub.
wir sehen uns in dresden

winke winke

Zalkh'Batar Golas der Blues Brother

-----------------------------------------------------------------------------



Urlaub (Brandir, 25. Mar 2000, 00:24:50):
Ich werde ab heute mal wieder eine Woche lang meine Sommersprossen zuechten
und Schnee fressen gehen... Man sieht sich naechste Woche.

Brandir

-----------------------------------------------------------------------------



Wien (Anoris, 25. Jun 2000, 17:00:08):
Hallo, ich flieg in 30 Minuten nach Wien.
Bin bis Mittwoch Nachmittag dort, wenn ihr (wiener) lust auf n Stammtisch
habt, ruft einfach an. 0041 76 392 4816. Bis bald! :) *winke*

-----------------------------------------------------------------------------



Weg (Aline, 18. Jul 2000, 11:22:01):
Hi Leute,

meine Tage hier in Hagen sind inzwischen gezaehlt und ich werde wohl,
waehrend ihr alle fein in Berlin feiert, nach Ravensburg umziehen.
Die erste Zeit werde ich wohl auch keinen Internetzugang haben, so dass
ich erstmal etwas Zwangsurlaub vom MG machen muss. *seufz*

Gibt es da unten in der Naehe vom Bodensee eigentlich Mudder?
Oder muss ich dann jedesmal zum Stammtisch 2,5h mit dem Auto fahren?

Auf jeden Fall werde ich Euch alle fuerchterlich vermissen.

Aline

-----------------------------------------------------------------------------



Re: Weg (Gloinson, 18. Jul 2000, 12:57:48):
~#! rn=Aline rt=963912121 rg=seher.urlaub
~#! tid=963912121
Immer wenn ich da herunterfahre gibt es da Mudder ;)

Gloin(son)

-----------------------------------------------------------------------------



Re: Weg (Dieder, 18. Jul 2000, 13:46:59):
~#! rn=Aline rt=963912121 rg=seher.urlaub
~#! tid=963912121
naja ich komme aus der Ecke... zumindest wenn ich nicht am Studieren bin :-)

Dieder

-----------------------------------------------------------------------------



Und wech... (Alcina, 19. Jul 2000, 14:13:13):

Halloechen,

bin bis 31.7. auf Konzertreise. Lasst das Mud ganz :)

Alcina 

-----------------------------------------------------------------------------



Urlaub, was sonst? :) (Anoris, 28. Jul 2000, 10:12:26):
werde jetzt eine Zeit lang nicht anwesend sein. Meine Couseine heiratet und
Sonntags gehts an weissen Sandstrand :) Vermutlich bis 9. Aug! *winke*
machts gut, bis bald - Anoris

-----------------------------------------------------------------------------



Re: Urlaub, was sonst? :) (Liara, 28. Jul 2000, 14:20:24):
~#! rn=Anoris rt=964771946 rg=seher.urlaub
~#! tid=964771946
Ich moechte bei dieser Gelegenheit mal betonen, dass ich nicht in den Urlaub
fahren werde und auch keinen fuer solche Zwecke bekomme. ;-)
Ich weiss, dass es niemanden interessiert, aber wenigstens is die Rubrik
bissken gefuellt ...und ich habe meinen Jammerskill unglaublich gesteigert.
:-)

Liara, Zwergenzauberine, findet seher.urlaub einfach toll!

-----------------------------------------------------------------------------



*grins* (Sharia, 29. Jul 2000, 14:17:41):
Jetzt war ich zwar schon weg aber ich fahre nochmal .. nur noch keine Ahnung
wohin ... aber fruehestens am 18.8. wieder da :-)))


Gruss Sharia

-----------------------------------------------------------------------------



*grins zurueck* (Flintnail, 30. Jul 2000, 09:36:43):
Hmm..ich war zwar auch schon im Urlaub, aber da mich hier sowieso schon fast
gar nich niemand mehr kennt, ist das ja auch egal:)

Flint*

-----------------------------------------------------------------------------



Re: wech (Woody,  1. Aug 2000, 22:00:18):
~#! rn=Rikus rt=965119028 rg=magier.urlaub
~#! tid=965119028
1. schreibt man Whiskey in Irland mit 'e' :) und
2. bin ich da auch ab Fr (aber nur fuer 2 Wochen).
Intressiert vermutlich eh keinen. ;-)

Woody.-


-----------------------------------------------------------------------------



Re: Re: wech (Rikus,  1. Aug 2000, 22:32:00):
~#! rn=Woody rt=965160018 rg=seher.urlaub
~#! tid=965119028
na vielleicht treffen wir uns ja beim whisky ohne e :)
rikus

-----------------------------------------------------------------------------



finally: URLAUB! :o) (Matis, 17. Aug 2000, 10:25:37):
Morgen komm ich fuer ein paar Tage in die Heimat zurueck, so
dass ich dann am Samstag zum Leipziger Stati da bin. Dienstag
naechste Woche fliege ich fuer einen Monat in die USA und schau
mir den Suedwesten an - sprich, ich werd fuer laengere Zeit
nicht im MUD sein. Lasst alles ganz und viel Spass!

Gartenzwerg Matis

-----------------------------------------------------------------------------



Re: finally: URLAUB! :o) (Ark, 17. Aug 2000, 21:03:17):
~#! rn=Matis rt=966500737 rg=seher.urlaub
~#! tid=966500737
Hm, da wo grade alles abbrennt? ;^)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Weg (Aline, 24. Aug 2000, 18:32:18):
Hi Leuts,

so meine Tage hier sind jetzt endgueltig gezaehlt.
Sonntag pack ich meine restlichen 7, 10, 20 .... Sachen und
fahr nach Ravensburg. Bis ich dann wieder Netzzugang habe,
werden wohl so einige Wochen ins Land gehen....
:(

Ich werde an Euch denken und Euch auch vermissen.
Machts gut! (Und danke fuer den Fisch.)

Aline


-----------------------------------------------------------------------------



Urlaub? (Alcina, 11. Dez 2000, 00:29:30):

Liebe Mudgemeinde,

fuer unbestimmte Zeit werde ich keinen Netzzugang mehr haben. Lasst das
Morgengrauen nicht zu oft crashen und habt viel Spass.

Alcina - kann hoffentlich in absehbarer Zeit wieder ausbilden.


-----------------------------------------------------------------------------



Heimaturlaub bis 7.1.2001 (Matis, 17. Dez 2000, 13:18:22):
Daher bin ich fuer die naechsten drei Wochen weitgehend ohne Netzzugang und 
werde eher selten im MG sein. 

HAVE FUN, MERRY CHRISTMAS, AND A HAPPY NEW YEAR!


Gartenzwerg Matis

-----------------------------------------------------------------------------



Eine Woche Urlaub! :) (Anatol, 11. Mar 2001, 00:56:13):

Bin in Teneriffa. Oder so. :)

Ana* ]:^>

-----------------------------------------------------------------------------



Re: Eine Woche Urlaub! :) (Anacrion, 11. Mar 2001, 02:39:39):
~#! rn=Anatol rt=984268573 rg=seher.urlaub
~#! tid=984268573
Bin ich gar nicht.

Bitte unterlassen Sie in Zukunft das Unterschreiben von Artikeln mit meinem
Namen

Hochachtungsvoll,

ana* ]:->

-----------------------------------------------------------------------------



6 Wochen Ferien (Mesirii, 11. Mar 2001, 09:51:21):
Hallo Ihrs,
ich mach mal 6 Wochen blau, wer Probleme mit dem tf-zeugs hat, wende sich 
entweder an einen der Anwesenden oder wenn da an meinen Abwesenheitsverwalter
Icho.
Mesi, Diplom schreibend und wirklich nach Teneriffa fahrend

-----------------------------------------------------------------------------



Mesirii ist fuer 14 Tage Sonne tanken (Kartii, 30. Mar 2001, 11:06:46):
Hallo Ihrs,
ich bin fuer 14 Tage nich da, mal sehen ob mich die Sonne Teneriffas von der
MUD-Sucht kurieren kann :)
Also habt ihr solange Ruhe vor nervigen Update- und Testanfragen von meiner
Seite, wer Probleme hat, wende sich an einen der Anwesenden :). (oder -tf)
Trotzdem zum Schluss noch einmal eine Bitte, schaut Euch den Mapper mal an,
ich brauch noch ne Menge Feedback um damit sinnvoll weitermachen zu koennen.

Bis demnaechst
Mesirii, der danach auch bald wieder persoenlich da ist.

-----------------------------------------------------------------------------



Ostern (Golas, 12. Apr 2001, 09:11:54):
Ich mach mir nen schoenes WE bei meiner Schwester in Kiel.

Golas einzeilig

-----------------------------------------------------------------------------



Re: Ostern (Hight, 12. Apr 2001, 12:24:42):
~#! rn=Golas rt=987059514 rg=seher.urlaub
~#! tid=987059514
*g* viel spass suessa ,o)

hight 

-----------------------------------------------------------------------------



Re: Re: Ostern (Golas, 16. Apr 2001, 18:17:11):
~#! rn=Hight rt=987071082 rg=seher.urlaub
~#! tid=987059514
ui, doch wer, der die rubrik liest :)
danke, war lustig und entspannend ...

-----------------------------------------------------------------------------



Re^3: Ostern (Hight, 16. Apr 2001, 22:41:02):
~#! rn=Golas rt=987437831 rg=seher.urlaub
~#! tid=987059514
nerja lesen is zuviel gesacht ... ich hab se halt net abbestellt ,o) steht ja
eh nie was drinne

-----------------------------------------------------------------------------



urlaub (Schlips, 20. Apr 2001, 19:01:00):
2 Wochen ---> Toskana

-----------------------------------------------------------------------------



Berlin on tour (Golas,  3. Mai 2001, 15:44:00):
ich mach mal wieder ne woche blau.
morgen frueh gehts los, also nicht wieder wundern, wenn ich heute abend noch
da bin :)
Die meisten werd ich ja auf der Party sehen ...

Golas urlaubsueberreif!!!

-----------------------------------------------------------------------------



Urlaub? (Mieze,  4. Mai 2001, 18:33:52):

Hi Leuts,

bin jetzt eine Woche nicht da. Lasst das Mud heil und sterbt nicht so oft.
Einige werd ich ja auf der Party sehen.

Mieze


-----------------------------------------------------------------------------



Muenster (Solmyr, 11. Mai 2001, 11:15:59):
Da dies einer meiner absoluten Lieblingsrubriken ist, dachte ich mir,
ich sollte vielleicht bekannt geben, dass ich das Wochenende in Muenster
verbringe :=) *GGG*. Also fuer dieses Wochenende bis Sonntag Nacht
gilt hier Solmyr-Nerv-Freie-Zone, wobei ich vielleicht einen Ueber-
raschungsbesuch abstatten werde :)

Gruss Kampfzwergenbalg Sol*

-----------------------------------------------------------------------------



Re: Muenster (Chuckylein, 11. Mai 2001, 13:22:20):
~#! rn=Solmyr rt=989572559 rg=seher.urlaub
~#! tid=989572559
Buhhhh wer soll dann das schmarrn vollposten? :(

Chuckylein, tieftraurig.

-----------------------------------------------------------------------------



urlaub (Elberet, 15. Mai 2001, 00:46:20):
Elbereth wird mal fuer laengere Zeit aus gesundheitlichen Gruenden in Urlaub
gehen.

i.v. Elbi 

-----------------------------------------------------------------------------



Ne Woche weg (Mesirii, 15. Mai 2001, 09:46:53):
Liebe Leute,
da meine Produktivitaet bzgl. des Diploms durch das MG im Hintergrund gegen 0
strebt, bin ich jetzt mal fuer ne Woche eher weniger da. Mal sehen ob es mit
eisernem Willen geht oder ob Spielpause mal sein muss.
Mesi, arglnd

-----------------------------------------------------------------------------



Re: Ne Woche weg (Gloinson, 15. Mai 2001, 10:50:42):
~#! rn=Mesirii rt=989912813 rg=seher.urlaub
~#! tid=989912813
Suchtie, Suchtie, naenaenaenaenaeae *nasedreh*
Loslos, mach schon Deine Spielpause :)

Gloin(son)

-----------------------------------------------------------------------------



Warner Brothers Movie World (Sublime, 13. Jun 2001, 06:06:10):
Hi,

ich wollte mal ankuendigen, dass ich demnaechst fuer 1 oder 2 Tage in die
Warner Brothers Movie World fahre(n) (will) und ich dafuer noch geeignete
Achterbahnmitjodler braeuchte. Wer also Lust, Zeit und Laune (und Achter-
bahntauglich ist) hat, kann sich bei mir gerne melden. Ach ja, bin eigent-
lich fuer alles offen (Nein, 'Ich bin nicht schwul und das ist auch gut
so'), ob Bahn, Auto oder Zeppelin...ich moechte da nur noch einmal hin,
bevor die grosse Kiddies-Sommerferien-Welle hereinbricht.

Gruss Sol*

-----------------------------------------------------------------------------



Brasilien (Spellfire,  3. Aug 2001, 16:40:21):
Moin Maedels,

die es interessiert, ich bin vom 7.8.-29.11 in Rio de Janeiro an der Uni,
keine Ahnung ob man von da aus anstaendig mudden kann.
Fuer den Rest gilt dieser Artikel zum Nase lang machen.

Sascha

-----------------------------------------------------------------------------



Inselchen (Anatol,  9. Aug 2001, 19:46:27):
Die Sonne meint, mir nach der Party zwei Wochen auf den Bauch scheinen
zu muessen und bestellte mich dafuer auf eine kleine Insel im Mittelmeer.

Wer kann dazu schon "nein" sagen?

Anatol :)

-----------------------------------------------------------------------------



Re: Inselchen (Anatol, 29. Aug 2001, 21:35:54):
~#! rn=Anatol rt=997379187 rg=seher.urlaub
~#! tid=997379187
Von besagtem Inselchen bin ich wieder zurueck, bald auch wieder "fest"
am Rechner. Aber schon beim Ueberfliegen der MPA wird mir ziemlich klar:
Man kann euch auch wirklich keine FUENF Minuten alleine lassen! :)

Anatol

-----------------------------------------------------------------------------



3 Wochen ohne Mousse (Isi, 13. Sep 2001, 10:16:22):
Tja, da ich 3 Wochen in Urlaub gehe, werdet ihr in der Zeit
von Moussegeschossen verschont - oder muesst auf sie verzichten
je nach dem ;)
Frohes Mudden
Isi (moussewerfend)

-----------------------------------------------------------------------------



1 Woche mit (hoffentlich) Sonne (Pale, 27. Sep 2001, 14:45:42):
... wetterfeste Kleidung, Badehose, Sonnencreme ... und Tasche zu *uff*
Ich glaube ich hab alles und mach mich jetzt fuer 10 Tage aus dem Staub.
Segeln an der Cote d'Azur. Ich werd an euch denken, wenn ich in der Sonne
schmore (hoffentlich) *G

Pale *(schon fast) aus der Ferne winkend*

-----------------------------------------------------------------------------



Weihnachtsurlaub (Matis, 17. Dez 2001, 16:51:18):
Hi folks,

ab morgen werde ich mich wieder mit Gluehwein, Bratwurst, Doenern und anderen
deutschen Spezialitaeten vollstopfen - mein Weihnachtsurlaub beginnt. Das 
bedeutet auch, dass ich in den naechsten Wochen nur sehr sporadisch hier
auftauchen werde. Also: euch allen ein froehliches Weihnachtsfest und eine
aufregende Silvesternacht!

Matis

-----------------------------------------------------------------------------



BLA (Anatol, 22. Dez 2001, 02:34:12):
Bis zur ersten Januarwoche habe ich keinen oder fast keinen Netzzugang.
Macht nix, ich habe den Anfang November beantragten Flat-Tarif noch 
immer nicht und ausserdem seid ihr ohnehin froh, mich fuer eine Weile
(nicht fuer immer, sorry ;)) los zu sein.

Frohes Fest da draussen! 

Anatol

PS: Nein, fuer "mail freunde" bin ich mir zu schade. ;) 


-----------------------------------------------------------------------------



Re: BLA (Amaryllis, 22. Dez 2001, 21:14:25):
~#! rn=Anatol rt=1008984852 rg=seher.urlaub
~#! tid=1008984852
Du bist also der Meinung, so wichtig zu sein, dass das nicht nur Deine
Freunde, sondern das ganze Mud wissen sollten? :-)

scnr,
Ama*

-----------------------------------------------------------------------------



Urlaub bis ~ 17.3 (Anatol, 14. Feb 2002, 14:16:33):
Bin bis 17.3. anderweitig unterwegs. Macht derweil nix kaputt. 

Anatol

-----------------------------------------------------------------------------



14 Tage Auspannen (Mesirii, 17. Mai 2002, 21:24:44):
werde ich mit der Family in Kroatien in der Naehe von Split, also habt Ihr
Eure Ruhe vor mir obwohl ich in der letzten Zeit eh nur noch geidlet hab.
Macht nix kaputt, und wenn das TF net geht wendet Euch an einen der bekannten
Uebeltaeter :)

Gruss Mesi, geht jetzt mal erholen

-----------------------------------------------------------------------------



Urlaub oder sowas :) (Puk, 23. Jul 2002, 16:19:02):
Hehe, war zwar in letzter Zeit eh nicht sehr aktiv, aber Semesterferien haben
endlich angefangen (oder Vorlesungsfreie Zeit wie das sich schimpft;) und ich
melde mich erst mal fuer 4-6 Wochen komplett ab.
Bis denne 

Das Puk

-----------------------------------------------------------------------------



Seher ... (Zook,  5. Jul 2003, 22:26:46):
... machen keinen Urlaub oder wie oder was? ;)

Zook sucht sein Newstool.

-----------------------------------------------------------------------------



Re: Seher ... (Nyx,  5. Jul 2003, 22:27:54):
~#! rn=Zook rt=1057436806 rg=seher.urlaub
~#! tid=1057436806

Seher nehmen da wohl eher 'mail freunde' :)


-----------------------------------------------------------------------------



Re: Re: Seher ... (Zook,  5. Jul 2003, 22:28:08):
~#! rn=Nyx rt=1057436874 rg=seher.urlaub
~#! tid=1057436806
Aber das macht doch Lag!

Zook.

-----------------------------------------------------------------------------



Re^3: Seher ... (Nyx,  5. Jul 2003, 22:28:54):
~#! rn=Zook rt=1057436888 rg=seher.urlaub
~#! tid=1057436806
Es saehe aber eher wichtigtuerisch aus, wenn ein Seher hier seinen Urlaub
postet, da verursachen die bestimmt lieber Lag :-)

-----------------------------------------------------------------------------



24.07.2003 - 05.08.2003 (Anoris,  5. Jul 2003, 22:29:02):
Zu obigem Datum am Strand der V.A.E.

Wer Postkartengeil ist, schreibe seine Adresse bitte
per Email.

- Anoris ;)

-----------------------------------------------------------------------------



Re^4: Seher ... (Zook,  5. Jul 2003, 22:29:06):
~#! rn=Nyx rt=1057436934 rg=seher.urlaub
~#! tid=1057436806
Also doch Newstool zuecken?

Zook.

-----------------------------------------------------------------------------



Re^5: Seher ... (Nyx,  5. Jul 2003, 22:31:20):
~#! rn=Zook rt=1057436946 rg=seher.urlaub
~#! tid=1057436806
Wieso, stehen doch jetzt 7 Artikel drin. Wie Du siehst, wird die Rubrik doch
rege genutzt :)

-----------------------------------------------------------------------------



Re^6: Seher ... (Zook,  5. Jul 2003, 22:32:22):
~#! rn=Nyx rt=1057437080 rg=seher.urlaub
~#! tid=1057436806
Jep. Und ich habe eine Postkarte fuer mich rausgeschlagen.

Zook.

-----------------------------------------------------------------------------



Re^7: Seher ... (Nyx,  5. Jul 2003, 22:33:03):
~#! rn=Zook rt=1057437142 rg=seher.urlaub
~#! tid=1057436806
Was hat denn eine Postkarte damit zu tun?

-----------------------------------------------------------------------------



Re^8: Seher ... (Zook,  5. Jul 2003, 22:33:25):
~#! rn=Nyx rt=1057437183 rg=seher.urlaub
~#! tid=1057436806
Tscha... ;)

Zook grinst.

-----------------------------------------------------------------------------



Re^9: Seher ... (Nyx,  5. Jul 2003, 22:34:05):
~#! rn=Zook rt=1057437205 rg=seher.urlaub
~#! tid=1057436806
Ich will auch eine Postkarte!

Nyx (schmollend)

-----------------------------------------------------------------------------



WILL! (Moonshine,  6. Jul 2003, 19:03:06):
Ich will ihn Urlaub, wann ist mir egal! Wohin, hmm...Seychellen waeren toll,
Cote d'Azur tut aber auch schon. :-)

Wer zahlt?

Moonshine bettelt.

-----------------------------------------------------------------------------



Re: WILL! (Morgoth,  6. Jul 2003, 19:05:20):
~#! rn=Moonshine rt=1057510986 rg=seher.urlaub
~#! tid=1057510986

Komm her und Bueck Dich. Dann setz ich meine Kraft mal eben auf 1000 und geb
Dir nen kraeftigen Tritt in den Hintern. Du musst nur aufpassen, nachdem Du
vom Mond abgeprallt bist, dass Du beim Wiedereintriit in die Atmosphaere nen
guten Hitzeschild hast.

M* hilft gerne

-----------------------------------------------------------------------------



Re: Re: WILL! (Rochus,  6. Jul 2003, 19:07:45):
~#! rn=Morgoth rt=1057511120 rg=seher.urlaub
~#! tid=1057510986
Also den ersten Satz hab ich ja von Dir erwartet...

  Rochus

-----------------------------------------------------------------------------



Re: WILL! (Zook,  6. Jul 2003, 19:07:53):
~#! rn=Moonshine rt=1057510986 rg=seher.urlaub
~#! tid=1057510986
Ich hab im August ne Woche fuer Urlaub geblockt. Wie waer's mit nem
lauschigen Aufenthalt in der Schweiz...?

Zook zwinkert Moonshine zu.

-----------------------------------------------------------------------------



Re: Re: WILL! (Moonshine,  6. Jul 2003, 19:16:54):
~#! rn=Zook rt=1057511273 rg=seher.urlaub
~#! tid=1057510986
Auch okay, wann und was machen? Klettern, wandern, Apres-wandern/ski aber
bitte nicht vergessen. ;-)

Moonshine freut sich dankt Zooki. 

-----------------------------------------------------------------------------



Re^3: WILL! (Zook,  6. Jul 2003, 19:17:36):
~#! rn=Moonshine rt=1057511814 rg=seher.urlaub
~#! tid=1057510986
Zook grinst schelmisch.

-----------------------------------------------------------------------------



Re^4: WILL! (Grimmborn,  8. Jul 2003, 12:07:02):
~#! rn=Zook rt=1057511856 rg=seher.urlaub
~#! tid=1057510986
Wenn gehornusst wird bin ich dabei.

GdA

-----------------------------------------------------------------------------



Re^5: WILL! (Zook,  9. Jul 2003, 00:35:15):
~#! rn=Grimmborn rt=1057658822 rg=seher.urlaub
~#! tid=1057510986
Oh, mal schaun, ob man das da anleiern koennte... Nibel? Waer da was drin?

Zook.

-----------------------------------------------------------------------------



Re^6: WILL! (Nibel,  9. Jul 2003, 07:46:38):
~#! rn=Zook rt=1057703715 rg=seher.urlaub
~#! tid=1057510986
Waer sicher mal spassig, aber ich versteh vom Hornussen auch nicht mehr als
ihr.
  - Nibel
-----------------------------------------------------------------------------



Re: Seher ... (Vardion,  9. Jul 2003, 10:31:14):
~#! rn=Zook rt=1057436806 rg=seher.urlaub
~#! tid=1057436806
... machen schon Urlaub, halten sich aber nicht fuer wichtig genug, das zu
posten ;-)

Vardion

-----------------------------------------------------------------------------



Re^7: WILL! (Zook,  9. Jul 2003, 11:43:03):
~#! rn=Nibel rt=1057729598 rg=seher.urlaub
~#! tid=1057510986
Bist Du denn ueberhaupt da? ;)

Zook.

-----------------------------------------------------------------------------



Re^8: WILL! (Nibel,  9. Jul 2003, 11:45:18):
~#! rn=Zook rt=1057743783 rg=seher.urlaub
~#! tid=1057510986
Wahrscheinlich nicht, aber das schreib ich ja dann in magier.urlaub ;-)
  - Nibel
-----------------------------------------------------------------------------



Re^9: WILL! (Zook,  9. Jul 2003, 11:45:38):
~#! rn=Nibel rt=1057743918 rg=seher.urlaub
~#! tid=1057510986
Also kein Hornussen. Geh ich eben nur klettern... ;)

Zook.
.-

-----------------------------------------------------------------------------



Mal urlaub (Roland,  7. Aug 2003, 22:01:04):
Hat sich da nich mal wer beschwert hier meldet sich keiner ab !? ;)
Is zwa kein Urlaub .. aber ich renovier und komm somit nich ans netz ... bis
Sonntag dann ...

Ro*

-----------------------------------------------------------------------------



Re: Mal urlaub (Ogo,  8. Aug 2003, 03:59:47):
~#! rn=Roland rt=1060286464 rg=seher.urlaub
~#! tid=1060286464
Sowas wegen _DREI_ Tagen? Man kanns echt uebertreiben ;)

-----------------------------------------------------------------------------



Sooooooooo kinners (Puk, 24. Aug 2003, 21:06:28):
meld mich dann mal fuer nen paar tage ab, duerfte eh nicht weiter auffalen :)
HEYYYYYYYYYYYYYYYYYYYYYY AB IN DEN SUEDEN
Der Sonne hinterher :)

bis die tage
Puk

-----------------------------------------------------------------------------



Urlaub habe ich gelernt zu buchstabieren (Toe, 10. Okt 2003, 19:22:58):
Hallo zusammen!

Seit 7 Jahren ohne wirklichen Urlaub (mal von Brieselang angesehen),
wird das dieses Jahr doch mal ein richtiger Urlaub.
Cinderella und toe goennen sich eine verspaetete Hochzeitsreise
(sind ja auch schliesslich 174 glueckliche Tage verheiratet).
Sollte das alles so klappen wie geplant besteigen wir den Flieger
am 17. in ffm nach Caracas, lassen uns ans Board der MS ASTOR
ueber den Aequator bringen und werden eines Tages von Casablanca
aus erneut nach Frankfurt zurueckfliegen. So in kw 45 wird toe
wohl erneut hier reinschneien... Machts gut und Danke fuer den
Fisch: http://www.transocean.de/astor-details.php?nr=17364

toe

-----------------------------------------------------------------------------



Re: Urlaub habe ich gelernt zu buchstabieren (Toe, 10. Okt 2003, 21:06:19):
~#! rn=Toe rt=1065806578 rg=seher.urlaub
~#! tid=1065806578
http://www.mycruise.de/modules.php?name=News&file=article&sid=98

-----------------------------------------------------------------------------



Mesi in Japan (Mesirii, 26. Apr 2004, 18:51:20):
So nun ist es bald soweit, ab Donnerstag weile ich fuer 3 Wochen im Land der
aufgehenden Sonne. Bin schon ganz gespannt auf die Leute, Kultur und Gegend
da mal sehen wie es mich unvorbereiteten Zwerg ueberrascht.
Bis bald
Mesi

-----------------------------------------------------------------------------



Fast wech (Asuka, 28. Jul 2004, 21:57:10):
Damit in dieser Rubrik auch mal was sinnvolles steht.
Ich bin vom 02.08 - 08.08 nicht anwesend, wenn also in der Zeit
irgendwer was von mir will, hat er Pech gehabt.

Asuka

-----------------------------------------------------------------------------



Uuuuuuuurlaub :) (Shaeena, 11. Aug 2004, 02:18:06):
So, ich bin ab in ein paar Stunden bis zum 27.8. im Uuuuuurlaub
und werde da hoffentlich nicht hier sein :)
Ich wuensch mir was, und bin dann nicht mehr da, erstmal.

Shaeena

-----------------------------------------------------------------------------



diverse Urlauber (Vardion,  5. Sep 2004, 22:36:34):
Liebe Daheimgebliebene,

nun habe ich es endlich mal geschafft und sitze im Internetcafe, vor lauter
Urlaub, hatte ich bisher dazu noch keine Zeit.
Hier ist es sonnig warm (28-34 Grad) bei wolkemlosen Himmel. Die Insel Gozo
ist ziemlich klein (14x7 km) und auch recht karg. Die Roemer haben wohl damals
alles Holz verbraucht. Neben einigen kleinen Fischer/Touristendoerfern am Meer
(eines davon Xlendi [sprich Schlendi] ist unser Urlaubsort), die alle
sternfoermig an die "Hauptstadt" Victoria angebunden sind. Sonst herrscht hier
das typische mediterrane Flair vor mit hellen Sandsteinhaeusern, vielen Cafes
und Restaurants am Hafen, herrliche Buchten usw. 
Bei der aktuellen Windstille ist es herrlich zu tauchen, auch die Tauchplaetze
an der Nordkueste sind alle nutzbar. Bisher hatten wir in unseren 9
Tauchgaengen schon Hoehlen, Riffe, Wracks, Seegraswiesen, Buchten usw.
Wirklich ein Erlebnis so ein Tauchurlaub und wird auch nicht der letzte sein.
Wenn wir nicht grad tauchen, vertreiben wir uns die Zeit bei Bier und Kinnie
(so nen leckerer Kraeuter-Softdrink) und lesen, spielen, schnorcheln in der
Bucht, quatschen, schlafen, essen (gab letztens ganz schmackhaften Fisch in
einem Full-Service Restaurant) oder haengen einfach nur rum.

Ich hoffe Euch allen geht es gut, und Deutschland, das Mud und die Arbeit
gibts noch. Falls nicht kann ich auch hierbleiben :)

P.S. Bitte intern weiterverteilen, hab leider nicht alle Mailadressen im Kopf
und kein Adressbuch bei web.de. Bitte auch in seher.urlaub in Zephyrs,
Tryfans, Muadibs und meinem Namen veroeffentlichen.

Bis demnaechts persoenlich.

Micha / Mesirii / Meikel

-----------------------------------------------------------------------------



Unbestimmte Abwesenheit wegen Umzug (Krimariol, 20. Sep 2004, 19:27:34):
Hallo an alle, die mich kennen oder auch nicht,
ich wollt hiermit mitteilen, das ich umziehe, ist zwar eigentlich nichts fuer
diese Rubrik, ...
ABER, da ich durch ein kleines Problem vermutlich ein paar Wochen keinen
Internetanschluss haben werde, moecht ich hiermit mitteilen, dass ich die
naechsten Wochen nicht...
oder vielleicht mal ab und zu von der Uni aus ueber Telnet...
da bin.
Also macht nichts, was ich nicht auch tun wuerde, lasst das Mud stehen und bis
hoffentlich bald.
MfG
Krimariol

-----------------------------------------------------------------------------



Katzenmusik (Mieze, 22. Sep 2004, 07:28:18):
Hallo zusammen,

ich bin bis einschliesslich Sonntag wegen eines Gesangskurses in der Naehe von
Gera nicht da. Also ein idlendes Fellviech weniger. 

Mieze - singt sich schonmal ein 

-----------------------------------------------------------------------------



Flitterwochen (Mesirii,  6. Dez 2004, 03:05:23):
Meine frisch angetraute Ehefrau und ich verschwinden mal zusammen mit
Trauzeugen und Sheriff in die Tiefen des Roten Meeres nach Hurghada
(Aegypten). Wir werden am 13.12. wieder hier auftauchen, wenn uns die Haie
nicht gefressen haben.

Mesi, Ehemann.

-----------------------------------------------------------------------------



Damit hier auch mal was steht ;o) (Mieze,  3. Mar 2005, 08:23:53):

Damit diese Rubrik nicht gaenzlich leer bleibt: Ich bin bis Sonntag Abend auf
einem Gesangskurs in Thueringen.

Mieze - macht Katzenmusik

-----------------------------------------------------------------------------



Urlaub  (Lacri, 17. Mai 2005, 08:34:24):
Tach, 

fuer eine Woche ab heute bin ich im Sueden. Lasst das MUD stehen. 

Lacri 

-----------------------------------------------------------------------------



08.07.2005 - 10.07.2005 (Anoris, 27. Jun 2005, 00:20:51):
Zu obigem Datum werde ich voraussichtlich eine Reise ueber Amsterdam
und Detroit nach Chicago und zurueck unternehmen.

Sollte wer von euch in dieser Zeit (8. oder 9. in der Umgebung Illinois,
genauer westlich von Chicago sein, wuerd ich mich ueber ein Stati freuen.

Wer (wie immer) Postkartengeil ist, moege seine Adresse bitte per Mudmail
an mich senden.

Liebe Gruesse
 - Anoris

-----------------------------------------------------------------------------



Re: 08.07.2005 - 10.07.2005 (Ark, 27. Jun 2005, 00:30:17):
~#! rn=Anoris rt=1119824451 rg=seher.urlaub
~#! tid=1119824451
Also selbst wenn ich dort waere, es waere mir zu hektisch ... sieht man Dich
da ueberhaupt laenger als 1ns? :-)


              *** ARK * the * Magnificent ***


-----------------------------------------------------------------------------



Re: Re: 08.07.2005 - 10.07.2005 (Anoris, 27. Jun 2005, 00:34:59):
~#! rn=Ark rt=1119825017 rg=seher.urlaub
~#! tid=1119824451
Jap, Freitag Nachmittag/Abend, Samstag Nachmittag/Abend und Sonntag
Vormittag sind noch nicht verplant!

Alternativ: kennt sich wer von euch schon dort und hat Empfehlungen fuer
etwas das man auf jeden Fall gesehen haben muss?

 - Anoris

-----------------------------------------------------------------------------



Re: 08.07.2005 - 10.07.2005 (Gloinson, 27. Jun 2005, 13:26:58):
~#! rn=Anoris rt=1119824451 rg=seher.urlaub
~#! tid=1119824451
Ah, sondierst du das Gelaende schon mal fuer die Party naechstes Jahr, weil
die Schweiz wieder nicht Partyort wird? :)


-----------------------------------------------------------------------------



Urlaub 02.07.2005 - 24.07.2005 (Anatol, 30. Jun 2005, 00:16:27):

Die kleinste der vier Inseln der Balearen mag ein Internet-Cafe haben,
aber dessen Besuch steht nicht auf der Liste der zu erledigenden Dinge.

Anatol


-----------------------------------------------------------------------------



Re: Re: Letztendlich (Zephyr, 18. Aug 2005, 09:50:56):
~#! rn=Vanion rt=1123875934 rg=magier.urlaub
~#! tid=1123875916
Nur weils so schoen ist.. Tryfan und ich fahren da auch mit. :)
C4

-----------------------------------------------------------------------------



Las Vegas / Houston / San Antonio (Anoris,  3. Feb 2006, 17:48:27):
Mittwochs flieg ich mit meinem Bruder fuer 10 Tage geschaeftlich nach
<Subject>. Sollten Postkarten gewuenscht sein, bitte ich euch per MG
Mail die Postadresse zukommen zu lassen.

Beste Gruesse
 - Anoris

-----------------------------------------------------------------------------



Gloinson die Piste runterschubse (Mesirii, 17. Mar 2006, 10:26:50):
fuer eine Woche in Oesterreich, mit tatkraeftiger Hilfe von Martini, Baal und
Calish.

Mesi, leidtragend :)

-----------------------------------------------------------------------------



Re: Gloinson die Piste runterschubse (Zook, 17. Mar 2006, 10:53:42):
~#! rn=Mesirii rt=1142587610 rg=seher.urlaub
~#! tid=1142587610
macht ihn nicht kaputt.
zook.

-----------------------------------------------------------------------------



Kurzurlaub (Mieze, 18. Mar 2006, 16:31:56):
Hallo zusammen

naechste Woche bin ich von Donnerstag bis Sonntag unterwegs und netzlos.

Mieze 

-----------------------------------------------------------------------------



Urlaub hab ich keinen (Mesirii, 25. Okt 2007, 23:12:03):
aber trotzdem bin ich grad rar. Das liegt daran, dass ich zum einen auf Arbeit
gra Pair-Programming betreibe, also nich nebenbei mudden kann. Zum anderen
refaktoriere ich grad meinen Java-Mapper und hab ein neues Projekt angefangen
-
SQL-Abstraktionsschicht (embedded DSL) in Java, das mich etwas in Atem haelt.
Also keine Angst, ich bin nich weg nur etwas beschaeftigt. 
P.S. Wer Lust hat das letzte sich mal anzugucken. jequel.jexp.de

Mesi

-----------------------------------------------------------------------------



Notebookreparatur (Mesirii,  9. Dez 2007, 11:33:26):
Ich werd mein Notebook naechste Woche mal wegen der Gehaeuseschaden
wegbringen.
Also wenn mich Maharet nich an ihren laesst, werd ich maximal von Arbeit
idelnderweise da sein.
Mesi/Ennox.

-----------------------------------------------------------------------------



Mesi auf die Insel (Mesirii,  8. Mar 2008, 13:43:53):
Genauer gesagt London, eine Woche, geile Softwareentwicklungskonferenz von
frueh bis abend. *freu*. Dafuer muss ich leider meine Family zuruecklassen.
Zum Glueck hab ich aber ein Hotel mit WLAN also sollte es, wenn es nich zu
spaet wird auch fuers reingucken reichen.
Mesi
P.S. http://qcon.infoq.com

-----------------------------------------------------------------------------



Bin wieder da (Mesirii, 14. Okt 2009, 22:10:34):
War ne Woche in Daenemark auf der geilsten Software-Entwicklungs-Konferenz
ueberhaupt - diesmal sogar als Speaker, also fuer lau *freu*.
Mesi

-----------------------------------------------------------------------------



auch mal weg (Sharia, 23. Jul 2010, 08:17:26):
einfach, weil ich mal nen Artikel schreiben will : :)

Ich war die letzten Wochen nicht da und werde die naechsten Wochen auch nicht
da sein *G*.

Aber jetzt kommt dann erstmal Urlaub.
Sollte zufaellig jemand naechste Woche in Anaheim auf der AACC sein: kurze
Mail mal an mich :)

Sharia
-.

-----------------------------------------------------------------------------



Re: auch mal weg (Zook, 23. Jul 2010, 08:26:52):
~#! rn=Sharia rt=1279865846 rg=seher.urlaub
~#! tid=1279865846
Was ist AACC?
Klingt wie ein neues Hustenmittel.
Zook.

-----------------------------------------------------------------------------



Re: Re: auch mal weg (Sharia, 23. Jul 2010, 08:27:23):
~#! rn=Zook rt=1279866412 rg=seher.urlaub
~#! tid=1279865846
American Association of Clinical Chemistry

-----------------------------------------------------------------------------



Re^3: auch mal weg (Zook, 23. Jul 2010, 08:27:55):
~#! rn=Sharia rt=1279866443 rg=seher.urlaub
~#! tid=1279865846
Lag ich doch gar nicht so schlecht. 
Zook.

-----------------------------------------------------------------------------



Ich schreib mal was - urlaub (Tin, 13. Apr 2014, 22:42:16):
Huhu liebe MG-gemeinde:)
Da hier in Seher.urlaub nimand schreibt, trag ich mal meinen urlaub ein;-)
ab Morgen bin ich im urlaub, ab und an hier im MG, allerdings meist am idlen.
Bitte lasst mein haus stehen;-)



-----------------------------------------------------------------------------



Urlaub bis 11.6. (Nok,  6. Jun 2014, 01:33:09):
Bin waehrenddessen voraussichtlich nicht da.

Nok.

-----------------------------------------------------------------------------



meist idle von juli/sebtember (Tin, 20. Jun 2014, 02:20:50):
Hey,
Ich werde vermutlich meist von Juli bis September nicht anwesend oder idle
sein.
Anfang Juli bis Ende Juli werde ich viele Termine haben, und deshalb idle
sein, wenn ich im MG bin.
Ende Juli bis Ende August bin ich im Urlaub. Bin erst Mitte September wieder
voll hier.
Bitte lasst mein Haus stehen und alles was dazu gehoert. :)
LG
Tin.

-----------------------------------------------------------------------------



Urlaub von 27.07.-28.08.2014 (Tin, 29. Jul 2014, 16:56:44):
Huhu, Ich verabschiede mich mal in den Urlaub, in dem es viel sonne, ein
tolles Meer und einen wundervollen Sandstrand gibt... aber schlechtes
Internet. Also wuensche ich euch ein frohes forschen, metzeln und questen. Ich
werde wohl ab und an reinschauen.
LG-Tin

-----------------------------------------------------------------------------



19.-25.9. (Nok, 19. Sep 2014, 00:44:48):
Urlaub waehrenddessen.

Nok.

-----------------------------------------------------------------------------



Urlaub (Nok, 20. Dez 2014, 00:56:39):
Vom 20.12. bis 03.01.
Wenn ich da mal reinschaue, dann vermutlich nur kurz, und meine Kartensammlung
habe ich dann natuerlich auch nicht griffbereit.

Nok i.V.v. Khidar.

-----------------------------------------------------------------------------



Urlaub von 01.03.2015-08.03.2015 (Tin, 21. Feb 2015, 14:27:55):
Huhu,
versuch 2.... Da ich am Handy nicht richtig tippen konnte:-D
Ich bin, so wie im Titel schon steht vom 01.03.-08.03. im Urlaub bei Familie
in New York...
Wurde auch mal wieder Zeit:-D
Erreichbar nur per E-Mail.... und Facebook :D

Frohes forschen, questen, metzeln und sterben:)

Tin

-----------------------------------------------------------------------------



Urlaub (Nok, 20. Okt 2015, 00:20:40):
Vom 21.10. bis 2.11. bin ich nur sehr gelegentlich da.

Gruesse,
Nok i.V.v. Khidar

-----------------------------------------------------------------------------



Urlaub 15.07.2016-20.08.2016 (Tin,  6. Jul 2016, 19:21:35):
Hallo,
vom 15.07. -20.08.2016 sind Taramar und ich im Urlaub und wohl moeglich nicht
im mg auffindbar. :)
Wir wuenschen allen viel Spass auf der Party und auf Festivals...oder was auch
immer ihr vorhabt...

Gruss
Tin und Taramar.

-----------------------------------------------------------------------------



