--- openshadinglanguage/src/liboslexec/automata.cpp.orig	2014-01-08 02:50:41.861748000 +0000
+++ openshadinglanguage/src/liboslexec/automata.cpp	2014-01-08 02:51:50.600679600 +0000
@@ -113,7 +113,7 @@
     // and finally the rule if we have it
     if (m_rule) {
         s += " | ";
-        s += Strutil::sprintf("%lx", (long unsigned int)m_rule);
+        s += Strutil::sprintf("%p", m_rule);
     }
     return s;
 }
@@ -362,7 +362,7 @@
         for (RuleSet::const_iterator i = m_rules.begin(); i != m_rules.end(); ++i) {
             if (s[s.size()-1] != '[')
                 s += ", ";
-            s += Strutil::sprintf("%lx", (long unsigned int)*i);
+            s += Strutil::sprintf("%p", *i);
         }
         s += "]";
     }
