diff --git a/htest/Test/Ganeti/OpCodes.hs b/htest/Test/Ganeti/OpCodes.hs
index ab56f69d4c4c945cb36abb88e5bf6919e20f1425..b2f6a74062636acec2e021841ea57dca328583ae 100644
--- a/htest/Test/Ganeti/OpCodes.hs
+++ b/htest/Test/Ganeti/OpCodes.hs
@@ -35,6 +35,8 @@ import qualified Test.HUnit as HUnit
 import Test.QuickCheck
 
 import Control.Applicative
+import Control.Monad
+import Data.Char
 import Data.List
 import qualified Data.Map as Map
 import qualified Text.JSON as J
@@ -441,6 +443,11 @@ case_py_compat = do
                              (arbitrary::Gen OpCodes.OpCode))
   let opcodes = head sample_opcodes
       serialized = J.encode opcodes
+  -- check for non-ASCII fields, usually due to 'arbitrary :: String'
+  mapM_ (\op -> when (any (not . isAscii) (J.encode op)) .
+                HUnit.assertFailure $
+                  "OpCode has non-ASCII fields: " ++ show op
+        ) opcodes
   py_stdout <-
      runPython "from ganeti import opcodes\n\
                \import sys\n\