diff --git a/hyper/Makefile b/hyper/Makefile
index 87af036d9a8ffafbefb1d4b53101dd26904667c6..7a40c3f497c867bcf0c499b95375c9a0ef9d29c4 100644
--- a/hyper/Makefile
+++ b/hyper/Makefile
@@ -4,6 +4,7 @@
 
 DISTNAME=		hyper-${VERSION}
 VERSION=		0.9
+PKGREVISION=	1
 CATEGORIES=		supervision
 MASTER_SITES=		${MASTER_SITE_OPENROBOTS:=hyper/}
 MASTER_REPOSITORY=	${MASTER_REPOSITORY_OPENROBOTS}hyper
diff --git a/hyper/distinfo b/hyper/distinfo
index ad9f5d2a0136e76fc020c0ab535a7ada063d56ac..0e929b2b3801cbaeac736e1e702d890d90ea7a07 100644
--- a/hyper/distinfo
+++ b/hyper/distinfo
@@ -1,3 +1,4 @@
 SHA1 (hyper-0.9.tar.gz) = adf3507649a3cd3afed44b300f99850243daab25
 RMD160 (hyper-0.9.tar.gz) = da79fc936a80720d489630163e403ce0439bd4fe
 Size (hyper-0.9.tar.gz) = 176663 bytes
+SHA1 (patch-aa) = 1d7f8ead0ab7811bfe394dfdd7db0d599cfdb239
diff --git a/hyper/patches/patch-aa b/hyper/patches/patch-aa
new file mode 100644
index 0000000000000000000000000000000000000000..407c23fe43d6e8d5dadbeea068291cc2c3757ad0
--- /dev/null
+++ b/hyper/patches/patch-aa
@@ -0,0 +1,21 @@
+[compiler] Force the output in fixed mode for double
+
+Otherwise, they can be truncated and lead to incorrect values
+---
+ src/compiler/ability.cc |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/compiler/ability.cc b/src/compiler/ability.cc
+index c87b1d6..1f92140 100644
+--- src/compiler/ability.cc
++++ src/compiler/ability.cc
+@@ -144,7 +144,8 @@ struct print_initializer_helpers : boost::static_visitor<std::string>
+ 	std::string operator () (const Constant<T>& c) const
+ 	{
+ 		std::ostringstream oss;
+-		oss << ", " << var_name << "(" << c.value << ")";
++		oss.precision(9);
++		oss << ", " << var_name << "(" << std::fixed << c.value << ")";
+ 		return oss.str();
+ 	}
+