diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -93,26 +93,32 @@
 
 Otherwise, installation from source is not difficult either:
 
- 1. First install the *Haskell platform*, see http://www.haskell.org/platform/
+ 1. If you have not done so yet, fetch the source code and change to the
+    directory containing the code:
+
+        git clone https://github.com/entropia/tip-toi-reveng.git tttool
+        cd tttool
+
+ 2. Install the *Haskell platform*, see http://www.haskell.org/platform/
     for details for your system. Users of Debian or Ubuntu simply run
 
         apt-get install haskell-platform
 
- 2. Install the development packages for ncurses, i.e.
+ 3. Install the development packages for ncurses, i.e.
 
         apt-get install libncurses5-dev
 
- 3. Install the Haskell dependencies. The Haskell platform comes with a tool
+ 4. Install the Haskell dependencies. The Haskell platform comes with a tool
     called `cabal`, and you should run the two commands
 
         cabal update
         cabal install --only-dependencies
 
- 4. Now you can build the program using
+ 5. Now you can build the program using
 
         cabal install --bindir=.
 
- 5. At this point, `tttool` should be ready to go. If you run
+ 6. At this point, `tttool` should be ready to go. If you run
 
         ./tttool
 
diff --git a/src/KnownCodes.hs b/src/KnownCodes.hs
--- a/src/KnownCodes.hs
+++ b/src/KnownCodes.hs
@@ -14,7 +14,10 @@
 firstObjectCode = 1000
 
 lastObjectCode :: Word16
-lastObjectCode = fromIntegral $ V.length knownRawCodes - 1
+-- Empirically, the pen does not recognize OIDs >= 15000:
+lastObjectCode = 14999
+-- Last object code accoring to the known raw codes:
+-- lastObjectCode = fromIntegral $ V.length knownRawCodes - 1
 
 knownRawCodes :: V.Vector Word16
 knownRawCodes =
diff --git a/src/TipToiYaml.hs b/src/TipToiYaml.hs
--- a/src/TipToiYaml.hs
+++ b/src/TipToiYaml.hs
@@ -178,19 +178,19 @@
 --    objectCodeOffsetMax = lastObjectCode - firstObjectCode.
 -- This would assign perfectly usable object codes, and would minimize the 
 -- probability of object code collisions between products, but sometimes 
--- object codes would wrap around from 16383 to 1000 even for small projects 
+-- object codes would wrap around from 14999 to 1000 even for small projects 
 -- which may be undesirable. We arbitrarily do not use the last 999 possible
 -- offsets to avoid a wrap around in object codes for projects with <= 1000
 -- object codes. This does not impose any limit on the number of object codes 
--- per project. Every project can always use all 15384 object codes.
+-- per project. Every project can always use all 14000 object codes.
     objectCodeOffsetMax = lastObjectCode - firstObjectCode - 999
 
 -- Distribute the used object codes for different projects across the whole 
 -- range of usable object codes. We do this by multiplying the productId with 
 -- the golden ratio to achive a maximum distance between different projects, 
--- indepedent of the total number of different projects.
--- 8890 = (16383-1000-999+1)*((sqrt(5)-1)/2)
-    objectCodeOffset = toWord16(rem (productId * 8890) (toWord32(objectCodeOffsetMax) + 1))
+-- independent of the total number of different projects.
+-- 8035 = (14999-1000-999+1)*((sqrt(5)-1)/2)
+    objectCodeOffset = toWord16(rem (productId * 8035) (toWord32(objectCodeOffsetMax) + 1))
 
 -- objectCodes always contains _all_ possible object codes [firstObjectCode..lastObjectCode], 
 -- starting at firstObjectCode+objectCodeOffset and then wrapping around.
diff --git a/tttool.cabal b/tttool.cabal
--- a/tttool.cabal
+++ b/tttool.cabal
@@ -1,5 +1,5 @@
 name:                tttool
-version:             1.5.0.1
+version:             1.5.1
 synopsis:            Working with files for the Tiptoi® pen
 description:         The Ravensburger Tiptoi® pen is programmed via special
                      files. Their file format has been reverse engineered; this
