diff --git a/2015/demot/tim/demot.md b/2015/demot/tim/demot.md
index 0904a164208fca0f019fd68e1932e0bc0dca13a9..78dfba667a4490515e88d227b86c3237f54b4757 100644
--- a/2015/demot/tim/demot.md
+++ b/2015/demot/tim/demot.md
@@ -259,42 +259,41 @@ tag: tiedostonpalautus_d06
 
 
 # Palautuslokerot vapaaehtoisille bonus-tehtäville
-#
-#~~~~ {#vastaustiedosto_v01 plugin="uploader"}
-#prompt: | 
-#    Bonusdemon 1 palautettava tiedosto.
-#tag: tiedostonpalautus_v01
-#~~~~
 
-#~~~~ {#vastaustiedosto_v02 plugin="uploader"}
-#prompt: | 
-#    Bonusdemon 2 palautettava tiedosto.
-#tag: tiedostonpalautus_v02
-#~~~~
+~~~~ {#vastaustiedosto_v01 plugin="uploader"}
+prompt: | 
+    Bonusdemon 1 palautettava tiedosto.
+tag: tiedostonpalautus_v01
+~~~~
 
-#~~~~ {#vastaustiedosto_v03 plugin="uploader"}
-#prompt: | 
-#    Bonusdemon 3 palautettava tiedosto.
-#tag: tiedostonpalautus_v03
-#~~~~
+~~~~ {#vastaustiedosto_v02 plugin="uploader"}
+prompt: | 
+    Bonusdemon 2 palautettava tiedosto.
+tag: tiedostonpalautus_v02
+~~~~
 
-#~~~~ {#vastaustiedosto_v04 plugin="uploader"}
-#prompt: | 
-#    Bonusdemon 4 palautettava tiedosto.
-#tag: tiedostonpalautus_v04
-#~~~~
+~~~~ {#vastaustiedosto_v03 plugin="uploader"}
+prompt: | 
+    Bonusdemon 3 palautettava tiedosto.
+tag: tiedostonpalautus_v03
+~~~~
 
+~~~~ {#vastaustiedosto_v04 plugin="uploader"}
+prompt: | 
+    Bonusdemon 4 palautettava tiedosto.
+tag: tiedostonpalautus_v04
+~~~~
 
-#~~~~ {#vastaustiedosto_v05 plugin="uploader"}
-#prompt: | 
-#    Bonusdemon 5 palautettava tiedosto.
-#tag: tiedostonpalautus_v05
-#~~~~
 
+~~~~ {#vastaustiedosto_v05 plugin="uploader"}
+prompt: | 
+    Bonusdemon 5 palautettava tiedosto.
+tag: tiedostonpalautus_v05
+~~~~
 
-#~~~~ {#vastaustiedosto_v06 plugin="uploader"}
-#prompt: | 
-#    Bonusdemon 6 palautettava tiedosto.
-#tag: tiedostonpalautus_v06
-#~~~~
 
+~~~~ {#vastaustiedosto_v06 plugin="uploader"}
+prompt: | 
+    Bonusdemon 6 palautettava tiedosto.
+tag: tiedostonpalautus_v06
+~~~~
diff --git a/2015/demot/yleispalautteita.txt b/2015/demot/yleispalautteita.txt
index 6ee37ccca091904bf645e14a1933a154adcf363b..27c39b7771412921904b190b2f9fbc987af55b7c 100644
--- a/2015/demot/yleispalautteita.txt
+++ b/2015/demot/yleispalautteita.txt
@@ -1,5 +1,67 @@
 Yleisiä palautepätkiä, joita tarvitsi copy-pastata useaan vastaukseen.
 
+v01_vaarallisia_ohjelmia
+---------------------------
+
+Hyväksytään, kun on yritetty tehdä ja kommentoitu prosessia uskottavasti.
+EI OLE KUITENKAAN MISSÄÄN NIMESSÄ OIKEIN! Syy:
+
+Hyväksytään, kun on yritetty tehdä.
+EI OLE KUITENKAAN MISSÄÄN NIMESSÄ OIKEIN! Syy:
+
+
+
+Toimivalta näyttää. Kohteliasta tosin olisi vapauttaa lopussa vielä c,
+koska se on dynaamisesti varattua muistia. Esim. jos nykyinen
+pääohjelma refaktoroinnin yhteydessä siirrettäisiin yleiskäyttöiseksi
+aliohjelmaksi, niin kyseinen aliohjelma saattaisi epähuomiossa jäädä
+vuotamaan muistia osoitteessa c.
+
+Pääsääntönä tulisi olla tarkkana ja vapauttaa aina eksplisiittisesti
+kaikki, mitä on varannutkin. Jäisi se toimintamalli
+"selkäytimeen". Tässä esimerkissähän koko ohjelman loppuminen kyllä
+vapauttaa kaiken prosessilla käytössä olleen muistin. Todellisia
+ongelmia voi tulla prosessien yhteisten resurssien, kuten
+viestijonojen tai semaforien kanssa. Näiden osaltahan ei auta edes
+uudempien alustakirjastojen turvavyöt, koska vain sovelluksen tekijä
+tietää, tuleeko ohjelman vapauttaa resurssi vai jättää se myöhempien
+prosessien käyttöön. Näilläkin voi olla kiintiömäärä, jonka loputtua
+uutta vastaavaa resurssia ei saa enää varattua. (Ja muistia vievät
+toki nämäkin, joskin käyttöjärjestelmän muistialueen puolelta! Ja
+viestijonon jäädessä eloon jää sinne myös toistaiseksi
+käsittelemättömät viestit viemään oman osansa muistista.)
+
+
+
+Huom.. nohevan opiskelijan cross-platform -koodi:
+
+#if defined(_WIN32) || defined(_WIN64) || defined(OS_WINDOWS)
+#include <windows.h>
+#else
+#include <unistd.h> // for usleep
+#endif
+
+#include<stdio.h>
+#include<string.h>
+#include<stdlib.h>
+//#include "turvavyo.h"
+
+void sleep_ms(int milliseconds) // cross-platform sleep function
+{
+#ifdef WIN32
+    Sleep(milliseconds);
+#else
+    usleep(milliseconds * 1000);
+#endif
+}
+
+
+v02_toteutuskatsaus
+---------------------
+
+
+
+
 d01_sormet_unixiin
 -------------------