diff -ur simulavr-1.0.9.1379011131.orig/src/rwmem.cpp simulavr-1.0.9.1379011131/src/rwmem.cpp
--- simulavr-1.0.9.1379011131.orig/src/rwmem.cpp	2013-10-22 17:15:19.000000000 +0200
+++ simulavr-1.0.9.1379011131/src/rwmem.cpp	2015-07-11 02:09:13.933533741 +0200
@@ -226,15 +226,22 @@
 }
 
 NotSimulatedRegister::NotSimulatedRegister(const char * message_on_access_)
-    : message_on_access(message_on_access_)  {}
+    : message_on_access(message_on_access_)  {have_warned = false;}
 
 unsigned char NotSimulatedRegister::get() const {
-    avr_warning("%s (read from register)", message_on_access);
+    static unsigned warn_count = 0;
+
+    if(!have_warned) {
+        if (warn_count++ < 10)
+            avr_warning("%s (read from register)", message_on_access);
+    }
     return 0;
 }
 
 void NotSimulatedRegister::set(unsigned char c) {
-    avr_warning("%s (write 0x%02x to register)", message_on_access, (unsigned)c);
+    if(!have_warned)
+        avr_warning("%s (write 0x%02x to register)", message_on_access, (unsigned)c);
+    have_warned = true;
 }
 
 IOSpecialReg::IOSpecialReg(TraceValueRegister *registry, const std::string &name):
diff -ur simulavr-1.0.9.1379011131.orig/src/rwmem.h simulavr-1.0.9.1379011131/src/rwmem.h
--- simulavr-1.0.9.1379011131.orig/src/rwmem.h	2013-10-22 17:15:19.000000000 +0200
+++ simulavr-1.0.9.1379011131/src/rwmem.h	2015-07-11 02:06:05.791885835 +0200
@@ -210,6 +210,7 @@
 class NotSimulatedRegister : public RWMemoryMember {
     private:
         const char * message_on_access;
+        bool have_warned;
 
     public:
         NotSimulatedRegister(const char * message_on_access);
